Minggu ke 7
PERNYATAAN INPUT & OUTPUT
PENDAHULUAN
1. Deskripsi singkat
Pada minggu ini dipelajari operasi dasar masukan (input) dan keluaran (output)
pada C++ dengan menggunakan obyek cin dan cout untuk membaca data yang
dimasukkan (di-key in) dari keyboard dan menampilkan data / hasil keluaran
program ke layar monitor. Dipelajari juga penggunaan fungsi getch() dan getche()
untuk memasukkan data berupa sebuah karakter, dan fungsi cin.get() dan
cin.getline() untuk memasukkan data berupa string, serta cara pendefinisian
variabel string untuk menyimpan konstanta string. Semua hal tersebut
dipraktekkan dengan membuat program yang dilakukan di kelas dan di lab.
2. Manfaat, relevansi
Salah satu hal terpenting dalam pembuatan program adalah proses memasukkan
data (input) dan menampilkan hasil keluaran dari program (output). Sebagai
programmer, dia harus mengetahui bahwa proses memasukkan data tidak hanya
dapat dilakukan melalui penugasan sebuah nilai kepada suatu variabel, namun
juga dapat dilakukan melalui key-in dari keyboard. Demikian juga pengetahuan
untuk menampilkan hasil keluaran dari program beserta berbagai cara untuk
mengatur format tampilannya perlu dikuasai, agar hasil program dapat ditampilkan
secara lebih informatif.
3. Learning Outcomes
Kognitif:
Menjelaskan operasi dasar masukan (input) dan keluaran (output) beserta
perintah-perintah (syntax) yang digunakan, dan menunjukkan prosedur
penggunaannya dalam sebuah program, serta dapat mengidentifikasi kesalahan
yang terjadi.
Psikomotorik:
Menggunakan pernyataan input dan output secara langsung untuk pembuatan
program sederhana.
Afektif:
Dapat bekerja dalam sebuah kelompok, dan mendiskusikan hasil kerjanya, serta
berpikir logis dan terstruktur.
PENYAJIAN
Sebagai contoh untuk menampilkan tulisan “Nama anda adalah : “, yang diikuti
dengan nilai dari variabel nama dan kemudian karakter newline (pindah baris),
digunakan pernyataan sebagai berikut:
cout << "Nama anda adalah : " << nama << '\n';
Pada contoh di atas terdapat karakter khusus berupa newline ('\n') yang disebut
escape sequence. Pada C++ terdapat sejumlah karakter yang tergolong sebagai
escape sequence, seperti yang telah dipelajari pada minggu sebelumnya (lihat
Tabel 5 materi Minggu ke 5 & 6).
Selain karakter escape sequence, C++ juga memiliki beberapa manipulator
yang digunakan untuk mengatur tampilan data, misalnya untuk mengatur agar
suatu nilai ditampilkan dengan lebar 10 karakter dan diatur rata kanan. Tabel 1
menunjukkan beberapa manipulator pada C++.
Tabel 1. Manipulator pada C++
Manipulator Keterangan
menyisipkan newline dan mengirimkan data ke piranti
endl
keluaran (file di disk)
setw(int n) mengatur lebar dari suatu tampilan sebanyak n karakter
setprecision(int n) mengatur banyaknya digit bilangan desimal
setiosflags(long f) mengatur beberapa tanda format f
menghapus format yang telah digunakan pada
resetiosflags(long f)
setiosflags()
Khusus manipulator setiosflags(), merupakan manipulator untuk mengatur
sejumlah tanda format seperti yang tercantum pada Tabel 2.
Tabel 2. Tanda format untuk manipulator setiosflags() dan resetiosflags()
Tanda Format Keterangan
ios::left mengatur rata kiri tampilan berdasarkan lebar hasil setw()
mengatur rata kanan tampilan berdasarkan lebar hasil
ios::right
setw()
ios::scientific mengatur format tampilan dalam bentuk eksponen
mengatur format tampilan dalam bentuk desimal (bukan
ios::fixed
eksponen)
menampilkan titik desimal pada bilangan pecahan yang
ios::showpoint
tidak memiliki bagian pecahan
Program 1.1
// *------------------------------------*
// * Contoh pemakaian setw(), ios::left *
// * ios::right dan ios::showpoint *
// *------------------------------------*
#include <iostream.h>
#include <iomanip.h> // untuk manipulator setw() dan setiosflags()
#include <conio.h>
void main()
{
int bil1 = 735,
bil2 = 15,
bil3 = 2006;
clrscr();
cout << "\nBilangan 1 = " << setw(5) << bil1 << endl;
cout << "Bilangan 2 = " << setw(5) << bil2 << endl;
cout << "Bilangan 3 = " << setw(5) << bil3 << endl;
Akhir Program
Program 1.2
// *-------------------------------------------------*
// * Contoh pemakaian ios::fixed dengan setprecision *
// * serta ios::scientific *
// *-------------------------------------------------*
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
float a = 123456789.123456;
double b = 123456789.123456;
int c = 123456, // bilangan bulat 6 digit
d = 1234567; // bilangan bulat 7 digit
float e = 123456, // bilangan desimal 6 digit
f = 1234567, // bilangan desimal lebih dari 6 digit
g = 1234.567;
clrscr();
cout << e << " " << f << " " << g
<< endl;
cout << setiosflags(ios::fixed) << a << " " << b << endl;
Akhir Program
variabel
cin
25 12.34
atau dapat juga:
25
12.34
Pengisian seperti ini akan memberikan:
25 ke bil_x, dan
12.34 ke bil_y
Obyek cin dapat juga dipakai untuk memasukkan sebuah karakter, namun
tidak dapat membaca Spasi, Tab ataupun Enter. Contoh memasukkan sebuah
karakter pada variabel kar yang bertipe char:
char kar;
cin >> kar;
Seperti ketika memasukkan konstanta numerik, untuk setiap karakter yang
dimasukkan perlu diakhiri dengan penekanan tombol Enter. Namun demikian
penekanan tombol Enter pada pemasukan sebuah karakter terkadang tidak
dikehendaki oleh pemakai. Untuk keperluan tersebut, C++ menyediakan fungsi
getch() ataupun getche(), yang dapat juga digunakan untuk membaca Spasi, Tab
ataupun Enter. Syntax-nya adalah :
karakter = getch();
atau
karakter = getche();
dengan karakter adalah nama variabel yang bertipe char. Adapun perbedaan
kedua fungsi tersebut adalah:
getch() tidak menampilkan karakter dari tombol yang ditekan
getche() menampilkan karakter dari tombol yang ditekan
Jika fungsi getch() ataupun getche() akan digunakan, maka file header conio.h
harus disertakan pula dalam program. Program 2.1 berikut merupakan contoh
program membaca data dari keyboard untuk berbagai tipe data.
Program 2.1
// *------------------------------------*
// * Program membaca data dari keyboard *
// *------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int bil1;
float bil2;
char karakter;
clrscr();
cout << "Bilangan yang anda masukkan kemudian = " << bil1
<< " dan " << bil2 << endl;
Akhir Program
3. Variabel String
Konstanta string telah dipelajari pada Minggu ke 5 & 6, dimana cara
penulisannya diawali dan diakhiri dengan tanda petik ganda (“). Misalnya
“Selamat”. Konstanta string seperti itu akan disimpan dalam memori secara
berurutan, dengan susunan seperti tampak pada Gambar 2.
S e l a m a t \0
dulu, misalnya:
char teks[15];
merupakan pernyataan untuk mendefinisikan variabel string bernama teks
dengan panjang maksimal 15 karakter (sudah termasuk karakter NULL).
Setelah didefinisikan, untuk memasukkan konstanta string melalui keyboard
dapat menggunakan obyek cin, seperti berikut:
cin >> teks;
Namun demikian, cara penggunaan cin di atas hanya dapat digunakan untuk
memasukkan beberapa karakter, selain spasi ataupun tab. Artinya karakter-
karakter yang terletak setelah spasi tidak dapat disimpan.
Agar karakter-karakter setelah spasi dapat dibaca, C++ menyediakan
fungsi anggota get() pada obyek cin, yaitu cin.get().
Program 3.1
// *---------------------------------------*
// * Contoh pemakaian cin untuk memasukkan *
// * konstanta string yang ada spasinya *
// *---------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks[20]; // string dengan panjang maksimal 20 karakter
clrscr();
Akhir Program
Apa yang terjadi jika Program 3.1 di atas dieksekusi? Perhatikan pula
Program 3.2 berikut yang merupakan modifikasi dari Program 3.1.
Program 3.2
// *---------------------------------------------*
// * Contoh pemakaian cin.get() untuk memasukkan *
// * konstanta string yang ada spasinya *
// *---------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks[20]; // string dengan panjang maksimal 20 karakter
clrscr();
Akhir Program
Program 3.3
// *---------------------------------*
// * Contoh permasalahan yang timbul *
// * akibat pemakaian cin.get() *
// *---------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks1[15],
teks2[20];
clrscr();
cout << "Kalimat pertama adalah : " << teks1 << endl;
cout << "Kalimat kedua adalah : " << teks2 << endl;
}
Akhir Program
Program 3.4
// *--------------------------------------------------*
// * Contoh definisi dan inisialisasi variabel string *
// * dan penggunaan cin.getline() *
// *--------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks[10], teks1[15], teks2[20];
char teks3[] = "Apakah anda sudah belajar pemrograman C++ dengan
baik ?";
clrscr();
cout << "Yang anda masukkan : " << teks << endl << endl;
cin.getline(teks, sizeof(teks));
cout << "Kalimat pertama adalah : " << teks1 << endl;
cout << "Kalimat kedua adalah : " << teks2 << endl;
cout << teks3 << endl;
}
Akhir Program
4. Aktivitas
Ada dua jenis aktivitas yang dikerjakan mahasiswa terkait dengan materi
yang diberikan pada minggu ke 7 ini, yaitu:
a. Klasikal, yang meliputi:
Diskusi kelompok
Mengerjakan tugas
b. Praktikum di Lab. Komputer, dapat mengerjakan materi tugas
5. Tugas
a. Amati program-program yang telah diberikan di atas (Program 1.1, 1.2,
2.1, 3.1, 3.2, 3.3, dan 3.4).
i. Selidiki dan identifikasi jika ada kesalahan.
ii. Tanpa harus mengkompilasi program-program tersebut terlebih dulu,
tuliskan output dari program-program tersebut.
iii. Eksekusilah program-program tersebut, dan bandingkan output yang
diperoleh dengan prakiraan output yang telah Anda lakukan pada
6. Rangkuman
Proses input dan output merupakan bagian yang penting dalam pembuatan
sebuah program. Untuk menampilkan hasil keluaran (output) dari program ke
suatu standard output, yang normalnya berupa layar, digunakan obyek cout yang
dapat disertai dengan penggunaan berbagai macam manipulator guna mengatur
format tampilan. Beberapa manipulator yang sering digunakan antara lain: endl,
setw(), setprecision(), setiosflags() dengan berbagai formatnya (ios::left,
ios::right, ios::scientific, ios::fixed, ios::showpoint). Khusus untuk manipulator
selain endl, jika akan digunakan dalam program, maka file header iomanip.h juga
harus disertakan.
Selain melalui pemberian nilai kepada sebuah variabel yang telah
didefinisikan, proses input dapat juga dilakukan secara interaktif melalui keyboard
dengan menggunakan obyek cin. Obyek cin dapat digunakan untuk memasukkan
nilai data pada sebuah variabel ataupun beberapa variabel, baik berupa konstanta
numerik (tipe int, tipe float, dan tipe double), karakter tunggal (tipe char),
maupun konstanta string melalui pendefinisian variabel string. C++ juga
menyediakan fungsi getch() ataupun getche() yang dapat digunakan untuk
membaca Spasi, Tab ataupun Enter pada pemasukan data karakter tunggal.
Sedangkan untuk string, C++ menyediakan fungsi anggota get() dan getline().
PENUTUP
Tes Formatif
1. Tuliskan perintah dalam C++, untuk melakukan definisi dan atau inisialisasi
terhadap variabel-variabel string berikut:
a. Variabel teks dengan panjang maksimal 15 karakter (belum termasuk
karakter NULL)
b. Variabel nama dengan nilai “Rochmad”
2. Diberikan sebuah program sebagai berikut:
line statement
1 #include <iostream.h>
2 #include <conio.h>
3 …………………………………………………
4
5 void main()
6 {
7 int a = 5, b = 1500, c = 150;
8 int bil1; bil2;
9
10 clrscr();
11
12 cout << "Masukkan 2 bilangan bulat : ";
13 cin << bil1 << bil2;
14
15 cout << "\nBanyaknya barang 1 = " << setw(4) << a << endl;
16 cout << "Banyaknya barang 2 = " << setw(4) << b << endl;
17 cout << "Banyaknya barang 3 = " << setw(4) << c << endl;
18 cout << bil1 << " " << bil2 << endl;
19 }
a. Pernyataan yang belum ada pada baris ke 3 dari program di atas adalah :
………………., hal ini diperlukan karena ……………………………
b. Dengan statement yang sudah ditambahkan pada baris ke 3, program di
atas masih mengandung dua buah kesalahan, sebutkan pada baris berapa
saja dan tuliskan pembetulannya.
c. Jika program di atas sudah menjadi benar dan nilai yang dimasukkan
melalui keyboard berturut-turut adalah 5 dan 150, tuliskan output dari baris
15, 16, 17, dan 18.
Petunjuk Penilaian
Mahasiswa dinilai dari hasil tugas dan praktikum yang dilakukan di Lab. Komputer
dengan memperhatikan learning outcomes yang telah disebutkan di atas dan
berdasarkan kriteria-kriteria yang ditunjukkan dalam rubrik penilaian sebagai
berikut :
No. Kriteria 1 2 3
Aspek Kognitif
1. Menjelaskan Tidak dapat Dapat Dapat
operasi dasar menjelaskan menjelaskan menjelaskan
masukan (input) sama sekali syntax-syntax dengan benar
dan keluaran yang digunakan dan tepat semua
(output) beserta pada operasi syntax-syntax
perintah-perintah input dan output, yang digunakan
Umpan Balik
Umpan balik dari mahasiswa dapat diperoleh dari tingkat keaktifan mahasiswa
pada saat pelaksanaan diskusi kelompok, hasil tugas, dan dari hasil praktikum di
Lab. Komputer.
Tindak Lanjut
1. Untuk mahasiswa yang tingkat keaktifannya dalam pelaksanaan diskusi
kelompok masih kurang, diharapkan untuk mempelajari terlebih dahulu materi
pada minggu berikutnya dan membuat daftar pertanyaan untuk didiskusikan
pada sesi klasikal minggu tersebut.
2. Untuk mahasiswa yang hasil tugas dan praktikumnya masih belum baik,
diharapkan untuk mengulangi kembali materi yang dipraktekkan dan menemui
asisten untuk memperoleh bantuan tutorial/asistensi.
Daftar Pustaka
6. Kadir, A., 2003, Pemrograman C++, Penerbit Andi Offset, Yogyakarta.
Lembar Kerja
Soal-Tugas
Presentasi
Laptop/PC
LO (Learning Pokok
Metode Ajar Aktivitas Metode Evaluasi Sumber
Outcomes) yang Bahasan Sub Pokok Bahasan Aktivitas Dosen
Teks
Web
(STAR) Mahasiswa dan Penilaian Ajar
akan dicapai (Topik)
7 Kognitif: Pernyataan a. Menampilkan informasi - - Klasikal, a. Baca bahan ajar a. Menentukan Tugas: membuat Pustaka: 6, 7,
Menjelaskan operasi input dan output ke layar (cout) mahasiswa sebelum kuliah kelompok program dengan 8
dasar masukan (input) b. Manipulator untuk berkelompok b. Diskusi antar b. Menyiapkan dan bahasa C++ untuk:
dan keluaran (output) mengatur tampilan (endl, dan berdiskusi kelompok menjelaskan Mengatur
beserta perintah- setw, setprecision, ios- (Cooperative c. Mengerjakan materi tampilan
perintah (syntax) yang scientific, ios-fixed) learning) tugas c. Fasilitator & menggunakan
digunakan, dan c. Pernyataan input (cin, evaluator diskusi manipulator
menunjukkan prosedur getch(), getche(), cin.get, d. Memberikan setw,
penggunaannya dalam cin.getline) tugas setprecision, ios-
sebuah program, serta scientific, ios-
mengidentifikasi ficed
kesalahan yang terjadi Penggunaan
obyek cin,
Afektif: getch(), getche()
Dapat bekerja dalam pada pernyataan
sebuah kelompok, dan input
mendiskusikan hasil Penggunaan
kerjanya, serta berpikir obyek cin.get
logis dan terstruktur dan cin.getline()
pada pernyataan
input
Tabel rubrik
Kriteria penilaian 1-
3
Psikomotorik: - - - Praktek di lab. Praktek membuat a. Menjelaskan Tabel rubrik
Menggunakan Komputer program dengan materi praktek Kriteria penilaian 1-
pernyataan input dan (setiap menggunakan b. Membimbing 3