Manipulator umumnya digunakan untuk mengatur tampilan data. Misalnya untuk mengatur agar suatu nilai ditampilkan dengan lebar 10 karakter dan diatur rat kanan terhadap lebar tersebut.
1. setw()
Manipulator setw() bermanfaat untuk mangatur lebar dari suatu tampilan data. Untuk lebih jelasnya dapat dilihat dalam program berikut:
#include <iostream.h>
#include <iomaip.h>
#include <conio.h>
/**
*bundet.com
*Manipulator dengan fungsi setw()
*/
void main() {
int jumbar1 = 150, jumbar2 = 23, jumbar3 = 1401;
cout << "Barang 1 = " << setw(4) << jumbar1 << endl;
cout << "Barang 2 = " << setw(4) << jumbar2 << endl;
cout << "Barang 3 = " << setw(4) << jumbar3 << endl;
getch();
}
Hasil eksekusi:
Barang 1 = 150
Barang 2 = 23
Barang 3 = 1401
Dengan menggunakan setw(), terlihat hasil eksekusi adalah rata kanan. Ini dapat di bedakan dengan hasil eksekusi pada contoh 3.2 yang rata kiri.
2. setfill()
Manipulator setfill() berguna untuk mengatur karakter yang dipakai memenuhi bagian field yang ditentukan setfill()
, yang tidak dipakai untuk menampilkan data.
Contoh program:
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
/**
*bundet.com
*Manipulator dengan fungsi setfill()
*/
void main() {
float harga = 123.45 clrscr();
cout << " setw(8) << harga << endl;
cout << setfill('*') ;
cout << setw(8) << harga << endl;
getch();
}
Hasil eksekusi:
123.45
**123.45
Pada program diatas 123.45 ditampilkan dengan lebar 8 karakter dan didahului oleh 2 karakter spasi. Apabila terdapat pernyataan setfill('*')
maka 2 karakter spasi diisi oleh karakter *
.
3. setiosflag()
Manipulator setiosflag() merupakan manipulator yang dapat dipakai untuk mengontrol sejumlah tanda format yang tercantum dalam tebel berikut:
| Tanda Format | Keterangan |
|-----------------|-------------------------------------------------------------------------------------|
| ios::left | Menyetel rata kiri terhadap lebar field yang diatur melalui setw() |
| ios::right | Menyetel rata kanan terhadap lebar field yang diatur melalui setw() |
| ios::scientific | Memformat keluaran dalam notasi eksponensial |
| ios::fixed | Memformat keluaran dalam bentuk notasi desimal |
| ios::dec | Memformat keluaran dalam basis 10 (desimal) |
| ios::oct | Memformat keluaran dalam basis 8 (oktal) |
| ios::hex | Memformat keluaran dalam basis 16 (heksadesimal) |
| ios::uppercase | Memformat huruf pada notasi heksadesimal dalam bentuk huruf kapital |
| ios::showbase | Menampilkan awalan 0x untuk bilangan heksadesimal atau 0 (nol) untuk bilangan oktal |
| ios::showpoint | Menampilkan titik desimal pada bilangan pecahan yang tidak memiliki bagian pecahan |
| ios::showpos | Untuk menampilkan tanda + pada bilangan positif |
4. setprecision()
Apabila anda bekerja dalam bilangan pecahan, Anda juga mengatur jumah digit pecahan yang ingin ditampilkan. Hal ini dapat dilakukan dengan menggunakan manipulator setprecision(). Bentuknya:
setprecision(n)
dengan n menyatakan jumlah digit pecahan yang diinginkan. Sebagai contoh:
cout << setprecision(2) << 123.56789 << endl;
akan menapilkan:
123.57
Bagian pecahan terdiri atas dua digit sesuai dengan argumen pada setprecision().
Contoh Program:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
/**
*bundet.com
*Manipulator dengan fungsi setprecision()
*/
void main() {
float nilai = 123.45;
cout << setiosflags(ios::fixed);
cout << setprecision(0) << nilai << endl;
cout << setprecision(1) << nilai << endl;
cout << setprecision(2) << nilai << endl;
cout << setprecision(3) << nilai << endl;
cout << setprecision(4) << nilai << endl;
cout << setprecision(5) << nilai << endl;
cout << setprecision(6) << nilai << endl;
cout << setprecision(7) << nilai << endl;
getch();
}
Hasil eksekusi:
123
123.4
123.45
123.450
123.4500
123.45000
123.449997
123.4499969
Sementara di bawah ini menunjukkan hasil bila setw() dipakai tetapi ios::fixed tidak diikut sertakan.
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
/**
*bundet.com
*Menunjukkan efek setprecision()
*Tanpa tanda format ios::fixed
*/
void main() {
float nilai = 123.45;
cout << setprecision(0) << nilai << endl;
cout << setprecision(1) << nilai << endl;
cout << setprecision(2) << nilai << endl;
cout << setprecision(3) << nilai << endl;
cout << setprecision(4) << nilai << endl;
cout << setprecision(5) << nilai << endl;
cout << setprecision(6) << nilai << endl;
cout << setprecision(7) << nilai << endl;
getch();
}
Hasil eksekusi:
le+02
le+02
1.2e+02
123
123.4
123.45
123.45
123.45
Semoga bermanfaat & selamat belajar!
Sumber:
© STMIK El Rahma Yogyakarta. Disusun Oleh Bp. Eko Riswanto, S.T., M.Cs,