twitter
    Find out what I'm doing, Follow Me :)

Lab ke2

Ini codingan lab pertemuan ke2 (dengan sedikit perubahan oleh saya)

#include
#include

void main(){
/*
//cout.setf(ios::hex); hexadesimal untuk angka dibawahnya

cout.setf(ios::oct); //octal untuk angka dibawahnya
cout << 123 << endl;

atau

cout << oct << 123 << endl;

//cout.setf(ios::dec);
cout.unsetf(ios::oct); //untuk mengembalikan dari octal
cout << 123 << endl;
cout.setf(ios::showbase); //menampilkan base bilangan
hexa 0xff
octal 0123
cout.setf(ios::uppercase); //hurufbesar untuk hexa
*/

cout.fill('.'); //isi dengan "."
//cout.width(10); //sama dengan setw(10);
cout.setf(ios::left); //rata kiri
cout << setw(10) << "halo" << endl; //geser kanan +iomanip.h
cout.setf(ios::right); //rata kanan
cout << setw(10) << "apa" << endl;
cout.fill(' '); //isi dengan " "
cout << setw(10) << "kabar" << endl;

cout.setf(ios::showpos); //menampilkan tanda positif
cout.setf(ios::internal); //kasi spasi antar tanda +
//gabungin ios -> cout.setf( | );
cout <
cout << setprecision(5); //decimal seperti %.2f
cout.setf(ios::fixed);
cout << 123.456 << endl;

//cout.setf(ios::scientific); //decimal pangkat 10



cin.get();
}

C++ stream input/output

Bahasa C memiliki rutin-rutin untuk proses input/output yang dideklarasikan di header file stdio.h. proses input/output versi C ini masih dapat digunakan di C++. Namun demikian C++ mengenalkan teknik baru untuk proses input/output, yaitu yang dinamakan iostreams atau disingkat menjadi streams saja. Hampir semua fungsi yang terdapat di stdio.h dapat dikonversikan ke dalam bentuk streams. Kelebihan streams dibandingkan input/output C adalah fleksibilitasnya dalam melakukan format input/output dan juga kemampuannya yang mendukung konsep operator berbeban lebih (overloaded operator).

Apa itu Streams ?

Streams adalah suatu abstraksi untuk menangani aliran data dari suatu sumber (producer) ke tujuan (consumer) lain. Baik sumber atau tujuan dapat berupa buffer di memori, string, file atau layar monitor. C++ mendeklarasikan kelas untuk strem di beberapa header file, yaitu;

* iostream.h (I/O umum)
* constrea.h (I/O ke console)
* strstrea.h (I/O ke string)
* fstream.h (I/O ke file)

Format pada Output dengan fungsi

Stream output dapat diformat seperti halnya output pada fungsi printf. Untuk mengubah format output, yang harus dilakukan adalah mengubah beberapa bit flag yang ada di kelas ios. Ada beberapa macam flag yang terdapat di kelas ios yaitu :

Daftar Format Pada Output

skipws Mengabaikan karakter spasi putih (white space) pada saat proses input

left Mengatur output menjadi rata kiri

right Mengatur output menjadi rata kanan

internal Output disisipi karakter pengisi (padding character) setelah tanda positif atau tanda basis bilangan

dec Menampilkan bilangan dalam basis desimal

oct Manampilkan bilangan dalam basis oktal

hex Manampilkan bilangan dalam basis heksadesimal

showbase Menampilkan basis bilangan saat suatu bilangan ditampilkan (untuk heksadesimal dengan tambahan “0x” dan untuk oktal dengan tambahan “O”)

showpoint Menunjukan tanda titik pada output bilangan real

uppercase Membuat output bilangan heksadesimal menjadi huruf kapital

showpos Menunjukan tanda ‘+’ pada output bila suatu bilangan lebih dari 0

scientific Menggunakan cara penulisan eksponensial untuk bilangan real (format : xxxE()xxx)

fixed Menggunakan format bilangan desimal untuk bilangan real

unitbuf Mengosongkan semua stream

stdio Mencegah masalah yang bisa terjadi bila digunakan stream dan stdio secara bersamaan

Sekilas tentang Flag

Flag merupakan sekumpulan bit-bit yang masing-masing bit melambangkan keadaan tertentu. Contoh yang paling sederhana adalah flag 1 bit yang hanya melambangkan keadaan nyala (“1”) atau padam (“0”).

Format Output yang lain

format pada output dengan fungsi-fungsi yang sering digunakan antara lain :

- int width (int) : fungsi ini digunakan untuk mengubah lebar output yang akan ditampilkan
- char fill (char) : fungsi ini digunakan untuk mengubah karakter pengisi (padding charakter). Karakter pengisi adalah salah satu karakter ASCII yang dituliskan bila output yang diformat lebih besar daripada lebar yang ditentukan dengan fungsi width
- int precision (int) : fungsi ini digunakan untuk mengubah derajat ketelitian bilangan real (floating point) yang akan ditampilkan

Output pada String

Ada beberapa format yang dapat dilakukan pada string dengan fasilitas stream, yaitu :

· Lebar output dapat diubah dengan memanggil fungsi width diikuti argumen lebar yang dikehendaki.

· Alignment (rata kiri atau rata kanan) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::left atau ios::right.

· Karakter pengisi (padding character) dapat diubah dengan memanggil fungsi fill diikuti argumen karakter yang akan digunakan sebagai karakter pengisi.

Output pada Bilangan Bulat

Yang dimaksud bilangan bulat disini adalah tipe short int, int, unsigned int, long, unsigned long. Ada beberapa format yang dapat dilakukan pada bilangan bulat dengan fasilitas stream, yaitu :

· Basis bilangan bulat (desimal, heksadesimal atau oktal) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::dec, ios::hex atau ios::oct.

· Lebar output yang diformat dapat diubah dengan memanggil fungsi width diikuti argumen lebar yang dikehendaki.

· Alignment (rata kiri atau rata kanan) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::left atau ios::right.

· Karakter pengisi (padding character) dapat diubah dengan memanggil fungsi fill diikuti argumen karakter yang akan digunakan sebagai karakter pengisi.

· Tampilan tanda ‘+’, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::showpos.

· Tampilan huruf (huruf kapital atau huruf kecil) pada bilangan heksadesimal, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::uppercase.

Output pada Bilangan Real

Yang dimaksud bilangan real disini adalah tipe data float, double dan long double. Ada beberapa format yang dapat dilakukan pada bilangan real dengan fasilitas stream, yaitu :

· Derajat ketelitian (precision) dapat diubah dengan memanggil fungsi precision diikuti argumen jumlah ketelitian angka yang diinginkan.

· Lebar output dapat diubah dengan memanggil fungsi width diikuti argumen lebar yang dikehendaki.

· Format bilangan real (fixed atau scientific) dapat diubah dengan memanggil fungsi setf diikuti argumen ios::fixed atau ios::scientific.

· Alignment (rata kiri atau rata kanan) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::left atau ios::right.

· Karakter pengisi (padding character) dapat diubah dengan memanggil fungsi fill diikuti argumen karakter yang akan digunakan sebagai karakter pengisi.

· Tampilan tanda ‘+’, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::showpos.

· Tampilan tanda ‘.’ Bila terdapat angka dibelakang koma, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::showpoint.


Daftar manipulator untuk I/O ke console


clreol
Menghapus sampai dengan akhir baris dari jendela teks

delline
Menghapus satu baris di jendela teks

highvideo
Memilih karakter dengan intensitas terang

insline
Menyisipkan satu baris kosong di jendela teks

lowvideo
Memilih karakter dengan intensitas rendah

normvideo
Memilih karakter dengan intensitas normal

setattr (int)
Memberi nilai atribut layar

setbk (int)
Memberi nilai warna latar belakang

setclr (int)
Memberi nilai warna karakter

setcrstype (int)
Mengubah bentuk kursor

setxy (int, int)
Menempatkan kursor di posisi tertentu

Contoh program pert 1

Contoh konversi :

#include

void main()
{
int tekan;
int i, j, k, x, y, bil;
do{
for(int k=0; k<80; k++) cout<< "~";
cout << "Menu\n";
cout << "====\n";
cout << "1. Deret Bilangan Ganjil\n";
cout << "2. Deret Bilangan Genap\n";
cout << "3. Deret Bilangan Prima\n";
cout << "4. Exit\n";
cout << "Silahkan pilih : ";
tekan=cin.get();
switch (tekan){
case '1' :
i=1, j=1;
do{
bil=-1;
cout << "\nMasukkan Jumlah Bilangan Ganjil Yang ingin ditampilkan [1..20] : ";
cin >> bil; cin.sync(); cin.clear();
}while (bil<1||bil>20);
cout << "\n";
while (i<=bil)
{
cout << j << " "; i++, j+=2;
}
cout<< "\n"; break;
case '2' :
i=0, j=2;
do{
bil=-1;
cout << "\nMasukkan Jumlah Bilangan Genap Yang ingin ditampilkan [1..20] : ";
cin >> bil; cin.sync();cin.clear();
}while (bil<1||bil>20);
cout<< "\n";
while (i {
cout << j<< " "; i++, j+=2;
}
cout << ("\n"); break;
case '3' :
x=0, y=0;
do{
bil=-1;
cout << "\nMasukkan Jumlah Bilangan Prima Yang ingin ditampilkan [1..20] : ";
cin >> bil; cin.sync();cin.clear();
}while (bil<1||bil>20);
cout << "\n";
for(j=1;;j++){
x=0;
for(i=1;i<=j;i++){
if(j%i==0)x++;
}
if(x==2){
cout << j << " ";
y++;
}
if(y==bil) break;
}
cout << "\n"; break;
}
cin.get();
}while (tekan!='4');
}

Praktikum 3/10/2009

Lab pertemuan 1

Pertemuan ini cuma bahas konversi-konversi dari C ke C++, berikut ini konversi2nya :
printf : cout <<
scanf : cin >>
fflush(stdin) : cin.sync(); cin.clear();
getch : cin.get();
gets : cin.getline();


contoh program :
#include


void main(){

int angka;
char karakter;
char nama[20];

/*for(int i=0; i<10; i++){
cout << i;
}

while(angka <5){
}

do{

}while(angka<5);

if(angka==6){
}
else if(angka==6){
}
else{
}

switch(){
case 1: break;

default:
break;
} */

/* operator aritmatika : + - * / %
operator logika || && */


cout << "Hello world \n"; //pengganti printf
cout << "masukkan nama anda : ";
//cin >> nama; //pengganti scanf
cin.getline(nama, 20); //pengganti gets
cin.sync(); cin.clear(); //pengganti fflushstdin

cout << "nama anda adalah " << nama << ".";
cin.get(); //pengganti getch()
}

Kuliah tgl 3/10/2009

Nah, kuliah kali ini membahas tentang Pointer dan kawan2nya...

Pointer itu apa sih ?
Pionter itu di ambil dari bahasa inggris, artinya penunjuk, nah berarti pointer itu tugasnya menunjuk sesuatu, bisa aja alamat dari ariabel ato isi dari variabel itu sendiri...

Sebelumnya, mari qt review ulang dulu...
I. Function... Function kalo di bahasa C pasti uda pada tau kan... nah di C++, qt ketemu lagi ni sama yang satu ini... tp namanya beda, namanya Class... Trus, tiap function itu kan pasti ada return valuenya, nah return valuenya ada macem2, tergantung dari jenis classnya, contoh :
Int cetak
Berarti return valuenya bertipe integer
Setelah itu ada yang namanya function prototype, funsinya sebagai tanda bahwa ada funsi di program tersebut (biasanya hal ini terjadi kalo fungsi tertentu dibuat setelah main function)...

Wets, ada yang lupa, ada yang namanya inline function, jadi compiler tu copy codenya, daripada di panggil terus, tapi ada kelemahannya, inline function ini cuma berlaku buat funtion yang hanya 1 baris...

II. Repetition
Di C, pasti uda pada tau repetition itu ada apa aja... ada Do, Do while dan For...
nah di C++ pun sama...
Repetition itu sendiri ada 2, yaitu Iterasi dan rekursif (and i dont like this one)...
Iterasi itu ya yang biasa kita pake, nah kalo rekursif itu fungsi yang memanggil fungsi itu sendiri...

III. Pointer
The last but not the least, pointer... Pointer seperti yang disebut di atas (scroll balik deh), juga ada di C++, formatnya sama ex: *a, *b.
contoh : *a = x
*b = &x
nah, dua2nya pointer, tapi beda...
yang *a = x, artinya *a menunjuk ke x.. sedangkan *a = &x, artinya *a menunjuk ke alamat si x..