Kamis, 18 Februari 2016

Pemprograman I c++



aku adalah alumni smk Teknik Komputer Jaringan dan saat ini kuliah di Sistem Informasi sangat kaget baget dengan mata kuliah yang stau ini ga paham sama sekali apa itu pemprograman C++ ku kira sistem informasi hampir mirip dengan jursan lama soal masih hub komputer rupanya jauh banget dan terpaksa harus banting stir belajar di perkulihan kali ini agar mendapat nilai yang membuat bangga ortu dan diri sendiri nah ini adalah salah satu materi pemprograman I yang di asuh oleh bapak M.Nursulaiman,S.T., M.T dan asdos nya mbak anisa yang lumayan baik dan ramah lah .
  
Komunikasi melalui console
 
Console merupakan interface dasar pada computers, biasanya berupa keyboard dan monitor. Keyboard merupakan alat input standar dan monitor adalah alat output standar. Dalam library iostream C++ , standard operasi input dan output untuk pemrograman didukung oleh 2 data streams: cin untuk input dan cout untuk output. Juga, cerr dan clog sebagai tambahan untuk output streams yang di desain khusus untuk menampilkan error messages. Dapat diarahkan langsung ke standard output maupun ke log file.

Biasanya cout (standard output stream) ditujukan untuk monitor dan cin (standard input stream) ditujukan untuk keyboard. Dengan menggunakan dua streams ini, maka kita dapat berinteraksi dengan user dengan menampilkan messages pada monitor dan menerima input dari keyboard.


Output (cout)
Penggunaan cout stream dhubungkan dengan operator overloaded  << (Sepasang tanda "less than").  Contoh           :

cout << "Output sentence"; // prints Output sentence on screen
cout << 120;               // prints number 120 on screen
cout << x;                 // prints the content of variable x on screen
 
Operator << dikenal sebagai insertion operator, dimana berfungsi untuk menginput data yang mengikutinya. Jika berupa string, maka harus diapit dengan kutip ganda ("), sehingga membedakannya dari variable. Contoh        :

cout << "Hello";      // prints Hello on screen
cout << Hello;        // prints the content of Hello variable on screen

Operator insertion (<<) dapat digunakan lebih dari 1 kali dalam kalimat yang sama, Contoh  :

cout << "Hello, " << "I am " << "a C++ sentence";
 
Contoh diatas akan menampilkan  Hello, I am a C++ sentence pada layar monitor. Manfaat dari pengulangan penggunaan operator insertion (<<) adalah untuk menampilkan kombinasi dari satu variabel dan konstanta atau lebih, contoh              :

cout << "Hello, I am " << age << " years old and my zipcode is " << zipcode;
 
Misalkan variable age = 24 dan  variable zipcode = 90064 maka output yang dihasilkan :
Hello, I am 24 years old and my zipcode is 90064
Contoh      :
cout << "First sentence.\n ";
cout << "Second sentence.\nThird sentence.";

Output :
First sentence.
Second sentence.
Third sentence.

Selain dengan karakter new-line, dapat juga menggunakan manipulator endl, contoh      :
cout << "First sentence." << endl;
cout << "Second sentence." << endl;

Output :
First sentence.
Second sentence.

 

 

Input (cin).
Menangani standard input pada C++ dengan menambahkan overloaded operator extraction (>>) pada cin stream. Harus diikuti bengan variable yang akan menyimpan data. Contoh       :

int age;
cin >> age;

Contoh diatas mendeklarasikan variabel age dengan tipe int dan menunggu input dari cin (keyborad) untuk disimpan di variabel age.

cin akan memproses input dari keyboard sekali saja dan tombol ENTER harus ditekan.

Contoh :
// i/o example
#include <iostream.h>
 
int main ()
{
  int i;
  cout << "Please enter an integer value: ";
  cin >> i;
  cout << "The value you entered is " << i;
  cout << " and its double is " << i*2 << ".\n";
  return 0;
}
Output :
Please enter an integer value: 702
The value you entered is 702 and its double is 1404.

cin juga dapat digunakan untuk lebih dari satu input   :
cin >> a >> b;

Equivalen dengan          :
cin >> a;
cin >> b;

Dalam hal ini data yang di input harus 2, satu untuk variabel a dan lainnya untuk variabel b yang penulisannya dipisahkan dengan :  spasi, tabular atau newline.



Struktur Kontrol



Sebuah program biasanya tidak terbatas hanya pada intruksi yang terurut saja, tetapi juga memungkinkan terjadinya percabangan, perulangan dan pengambilan keputusan. Untuk mengatasi kebutuhan itu C++ menyediakan struktur kontrol yang dapat menangani hal-hal tersebut.

Untuk membahas hal tersebut diatas, akan ditemui istilah block of instructions. Blok instruksi adalah sekumpulan instruksi yang dibatasi dengan tanda semicolon (;) tetapi dikelompokan dalam satu blok yang dibatasi dengan kurung kurawal {  }.


Struktur Kondisional : if and else
Digunakan untuk mengeksekusi sebuah atau satu blok instruksi jika kondisi terpenuhi, sintaks:
if (condition) statement

condition merupakan ekspresi yang dievaluasi. Jika kondisi bernilai true, maka statement akan dijalankan. Jika false, maka statement akan diabaikan dan program menjalankan instruksi selanjutnya.

Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:
if (x == 100)
  cout << "x is 100";

Jika ada lebih dari satu instruksi yang akan dijalankan maka harus dibuat dalam blok instruksi dengan menggunakan tanda kurung kurawal { }:
if (x == 100)
 {
  cout << "x is ";
  cout << x;
 }
Dapat juga menggunakan keyword else, jika kondisi tidak terpenuhi. Penulisannya digabungkan dengan if :
if (condition) statement1 else statement2

Contoh :
if (x == 100)
  cout << "x is 100";
else
  cout << "x is not 100";

Akan tercetak x is 100 jika nilai x adalah 100, jika tidak akan tercetak x is not 100.

Contoh :
if (x > 0)
  cout << "x is positive";
else if (x < 0)
  cout << "x is negative";
else
  cout << "x is 0";


Struktur perulangan (loops)

Loops merupakan perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.

The while loop.
Sintaks :
while (expression) statement

Fungsi dari statement diatas adalah mengulang statement jika expression bernilai true.

Contoh :

// custom countdown using while
#include <iostream.h>
int main ()
{
  int n;
  cout << "Enter the starting number > ";
  cin >> n;
 
  while (n>0) {
    cout << n << ", ";
    --n;
  }
  cout << "FIRE!";
  return 0;
}

Output :
Enter the starting number > 8
8, 7, 6, 5, 4, 3, 2, 1, FIRE!

Algoritma program dimulai dari main :
1. User meng-input nilai untuk n.
2. Instrukti while mengevaluasi apakah (n>0). Ada dua kemungkinan  :
true: meng-eksekusi statement (step 3,)
false: melompati statement. lanjut ke step 5..
3.Mengeksekusi statement :     cout << n << ", ";
--n;
(Menampilkan n di layar dan mengurangi n dengan 1).
4. Akhir dari blok. kembali ke step 2.
5. lanjut menuju program setelah blok. Cetak   : FIRE!  dan program berakhir.


The do-while loop.
Format:
do statement while (condition);

Secara fungsional, hampir sama dengan while loop, hanya saja condition dalam do-while dievaluasi setelah eksekusi statement , dengan kata lain, sedikitnya satu kali eksekusi statement walaupun kondisi tidak terpenuhi. Contoh      :
           
               // number echoer
#include <iostream.h>
int main ()
{
  unsigned long n;
  do {
    cout << "Enter number (0 to end): ";
    cin >> n;
    cout << "You entered: " << n << "\n";
  } while (n != 0);
  return 0;
}

Output :
Enter number (0 to end): 12345
You entered: 12345
Enter number (0 to end): 160277
You entered: 160277
Enter number (0 to end): 0
You entered: 0


The for loop.
Format :
for (initialization; condition; increase) statement;

Fungsinya akan mengulang statement jika condition bernilai benar. Sama seperti while loop., hanya saja for memungkinkan untuk memberikan instruksi initialization dan intruksi increase, sehingga dapat menampilkan loop dengan counter.

Algoritma perulangan for         :
  1. initialization, digunakan untuk memberikan nilai awal untuk variable counter. Dieksekusi hanya sekali.
  2. condition, Dievaluasi, jika bernilai true maka loop berlanjut, sebaliknya loop berhenti dan statement diabaikan
  3. statement,  dieksekusi, bisa berupa instruksi tunggal maupun blok instruksi (dalam tanda  { } ).
  4.  increase, dieksekusi kemudian algoritma kembali ke step 2.

Contoh :
 
// countdown using a for loop
#include <iostream.h>
int main ()
{
  for (int n=10; n>0; n--) {
    cout << n << ", ";
  }
  cout << "FIRE!";
  return 0;
}

Output :

10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!

Initialization dan increase bersifat  optional. Sehingga dapat dituliskan : for (;n<10;) untuk for tanpa initialization dan increase; atau for (;n<10;n++) untuk for dengan increase tetapi tanpa initialization. Dengan operator koma (,) kita dapat mendeklarasikan lebih dari satu instruksi pada bagian manapun termasuk dalam loop for, contoh      :

            for ( n=0, i=100 ; n!=i ; n++, i-- )
{
  // whatever here...
}

Loop diatas akan meng-eksekusi sebanyak 50 kali :

 

nilai awal n = 0 dan i = 100, dengan kondisi (n!=i) (yaitu n tidak sama dengan i). Karena n mengalami penambahan 1 dan i mengalami pengurangan 1, maka kondisi loop akan salah setelah loop yang ke-50, yaitu ketika n dan i bernilai 50.

KESEDIHAN




Pandanganku pada langit tua. Cahaya bintang berkelap kelip mulai hilang oleh kesunyian malam.  Aku berjalan menyusuri lorong malam sepi nan gelap. Cahaya bulan malam ini begitu indahnya. Hari ini benar-benar hari yang melelahkan. Konflik dengan orang tua karena tidak lulus sekolah. Hari ulang tahun yang gagal di rayakan. Dan hadiah sepeda motor yang terpaksa di kubur dalam-dalam karena tak lulus, belum lagi si adik yang menyebalkan. Teman-teman yang konvoi merayakan kemenangan, sedang aku?
Hari-hari yang keras kisah cinta yang pedas. Angin malam berhembus menebarkan senyumku walau sakit dalam hati mulai mengiris. Sesekali aku menghapus air mataku yang jatuh tanpa permisi. Sakit memang putus cinta.
 Rasanya beberapa saat lalu, aku masih bisa mendengar kata-kata terakhirnya yang tergiang-ngiang merobek otak ku.
“sudah sana… Kejarlah keinginanmu itu!, kamu kira aku tak laku, jadi begini sajakah caramu, oke aku ikuti.. Semoga kamu tidak menyesal menghianati cinta suci ini.” beberapa kata yang sempat masuk ke hpku, di ikuti telpon yang sengaja ku matikan karena kesal atau muak.
Aku termenung di pinggir jalan, memegang kepalaku yang sakit.
“selamat malam..? Sorii mba kayanya lagi sedih banget boleh aku minta duitnya..” seorang pemabuk dengan botol bir di tangan kiri dengan jalan yang tak beraturan,
 Ia mengeluarkan sebilah pisau lipat dan mengancamku. Aku hanya terdiam tak berkata, membuatnya sedikit binggung. Aku meraih tas di sampingku dan menyerahkan padanya. “ini ambil semua.. Aku tak butuh semua ini. Aku hanya ingin mati…!” Aku melemparkan tas ke hadapannya yang di sambut dengan senyum picik dan iapun menghilang di gelapnya malam.
Aku bangkit berdiri dan berjalan menyusuri malam, berdiri menatap air suangai yang mengalir airnya deras.Di sini di atas jembatan tua ini. Angin sepoi-sepoi menyerang tubuh ku. Aku berdiri menatap langit yang bertabur bintang, rasanya tak ada yang penting bagiku sekarang. Perlahan-lahan aku berjalan menaiki jembatan dan berdiri bebas. Menutup mata dan tinggal beberpa senti lagi aku akan terjatuh. Aku perlahan mengangkat kaki kananku dan…?
Tiba-tiba sosok pemabuk yang menodong pisau padaku ku tadi, menarik baju ku dan menampar pipiku kuat, keras sekali tamparannya
“ini uang dan tas mu…!! Aku tak butuh..! Aku lebih baik mati kelaparan dari pada melihat wanita lemah sepertimu” ia menarik ku turun dan melemparkan tasku di atas tanah
 Dan ia berlalu pergi.  Aku bangkit dan meraih tas ku kembali menyusuri tangga turun. Sosok yang tadi, pria mabok yang ternyata seumuran denganku, di sekujur tubuhnya penuh tato dan tubuhnya kurus sekali. Ia berdiri termenung pada tangga jalan. Sesekali menatap langit dan menghapus air matanya.
“boleh aku berdiri disini bersamamu? Aku menyapanya tapi ia hanya terdiam membisu”. Aku berdiri di sampingnya menunggu sampai kapan ia akan berdiri pergi dari sini.
 “kenapa kamu menamparku..?
 Kenapa kamu menolongku?
 Aku sudah tak berarti lagi. Pria yang aku cintai bertahun-tahun mencapakanku dengan tuduhan yang tak jelas, aku memulai pembicaraan”.
 Dengan sesekali menghapus air mata akibat dari gejolak di hatiku. “apa kamu akan terdiam atau aku telah mengusikmu?”. Aku melihatnya dan ia balik menatapku tajam. Aroma alkohol dari mulutnya jelas tercium saat ia bicara “maafkan aku..? Sungguh aku minta maaf, menurut ku kamu terlalu lemah, masalah apapun jangan berhenti untuk bangkit, bukankah setiap hari kita merasakan hal yang sama? Ia berkata sembari mengulurkan tangannya yang ternyata cuma 2 jari yang utuh, Aku mulai merinding karena sedikit takut. Sehingga aku tak membalas uluran tangannya. “kaget ya mbak?. Jari ku yang lain di potong oleh preman karena persaingan. Hidup di jalan seperti ku ini, hawanya sangat dingin dan penuh nyali besar, bahkan untuk tertidur saja itu sulit. Harus rela kedinginan, Di gigit nyamuk dan tempat ku tertidur hanya di emperan toko, Dan kalau sudah penuh oleh gembel lain, terpaksa aku harus mencari tempat lain yang menurutku layak. Maaf bila aku mengambil tas mu. Aku butuh makan, sudah 3 hari aku tidak makan, sisa makanan di tong sampah sudah membusuk karena hujan kemarin, Biasanya aku mencari secerca kenikmatan disana yang masih bisa layak ku telan, rasa lapar tak akan bisa membuatmu jijik. Setiap hari saat membuka mata yang anda ingat hanya perut dan perut.”Ia terdiam dan mengalihkan pandanganya luas menembus angkasa, langit malam ini. Aku hanya terdiam terpaku dengan mulut terbuka, betapa aku tak percaya setengah mati. Bagaimana mungkin seandainya sekarang aku berada di posisi ini? Aku yang terlahir dari keluar sederhana namun penuh kehangatan, uang bukan masalah, aku hanya meminta tanpa pernah tahu bagaimana orang tuaku mendapatkannya, semuanya cukup, tapi ternyata itu bukan kebahagian, itu nafsu sesaat, Aku memang memiliki segalanya tapi tidak dengan cinta, selalu ada yang kurang setiap hari. Tanpa kebersaman kita mati. Terutama pentingnya mensyukuri apa yang ada. Aku menarik tangan dan menjabat tangannya kuat-kuat yang tinggal dua jari meski sedikit risih karena aneh menurutku. Aku memberinya sedikit pelukan hangat. Ia tersenyum memamerkan mulutnya yang bau alkohol dan bau wc umum. Aku menyerahkan tas ku padanya. “ambil lah.. Aku tak mengenalmu tapi kamu memberi ku banyak alasan hari ini, kenapa aku harus kuat menghadapi hidupku sekarang dan nanti, bukankah hidup harus tetap di jalani. Aku sadar masih punya segalanya, bodoh sekali cuma karena cinta semangatku hilang, belum tentu ia jodohku, belum tentu ia juga memikirkan hal yang sama, rasa sakitku”. Aku berlari menuruni tangga meninggalkan ia sendiri yang masih terdiam menatap kembali langit yang menampakan bintang-bintang kecil yang berkelip dengan jenaka, seakan hari ini tak akan berlalu.
Ketika aku akan menapaki jalan. Kekasihku sedang berdiri di depanku dengan bunga mawar banyak sekali di tangannya, sementara di belakangnya orang tua dan adikku yang berdiri di samping mobil, kami saling terdiam untuk beberapa saat ia memulai.“maafkan aku sayang, ternyata aku yang salah menilaimu, makasih ya?, sudah membuat hidupku lebih berharga karena ini. Ia menyerahkan bunga dengan sebuah diary usang punyaku, yang entah dari mana ia mendapatkannya. Tapi disinilah aku bisa menulis menitikan setiap masalah, rasa banggaku atas kekasihku ini. Aku memeluk erat tubuhnya lama kami terdiam di iringi tangis dan canda menghiasi malam, sementara kedua orang tuaku tersenyum senang. Aku mengajak kekasihku menaiki tangga untuk mengenalkan pada orang yang mengajarkanku banyak hal. Khususnya arti bersyukur.Kami menapaki jalan tangga dan melirik sekeliling dan mencari namun sosok itu hilang tak berbekas? Kami turun dan kami pergi ke mall bersama orang tua dan adik ku untuk merayakan ulang tahunku.
Walaupun tetap aku tak dapat sepeda motor karena tak lulus tapi bukan berarti kehangatan ini harus berakhir

 
biz.