Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

TOPIK 7 INPUT DAN OUTPUT

TOPIK 7 INPUT DAN OUTPUT

PENGENALAN
Apabila pengguna mengguna aturcara, ia adalah interaktif dimana data akan dimasukkan
oleh pengguna. Setelah memproses data yang diinput tadi, data baru diproses akan
dipaparkan pada skrin atau dicetak ke printer.

Di topik ini, kita akan melihat cara-cara berlainan yang boleh digunakan oleh pengaturcara
untuk membaca data dari pengguna dan memaparkan data kepada skrin.

OBJEKTIF
Di akhir topik ini anda seharusnya dapat:

1. menggunakan fungsi printf() untuk menghasilkan output data ke paparan mengikut


format tertentu;
2. menggunakan fungsi scanf() untuk mendapatkan input data dari papan kekunci
mengikut format tertentu; dan
3. memaparkan output berdasarkan segmen atur cara.

7.1 FUNGSI printf()


Fungsi printf() boleh digunakan untuk memaparkan atau mencetak maklumat dalam format
tertentu kepada skrin monitor atau ke mesin pencetak. Semua jenis data boleh dipaparkan
kepada skrin, iaitu jenis int, char, float, double dan aksara rentetan. Untuk
menggunakan fungsi printf() atau fungsi scanf() anda perlu menggunakan fail pengepala
stdio.h

Format fungsi printf() adalah :

printf(kawalan format [, senarai_nilai]);

kawalan format : suatu rentetan yang menentukan bentuk output merujuk kepada
senarai nilai
senarai_nilai : boleh terdiri daripada pembolehubah, pemalar, ungkapan atau
gabungan

OUM 45
INPUT DAN OUTPUT TOPIK 7

Jadual 7.1: Spesifikasi Format untuk printf()

Kawalan Format Output


%d Integer dalam bentuk desimal.
%i Integer dalam bentuk desimal.
%u Integer desimal tak bertanda.
%o Integer dalam bentuk oktal.
%x Integer heksadesimal tak bertanda ditulis dgn huruf kecil (a,b,c,d,e,f).
%X Integer heksadesimal tak bertanda ditulis dgn huruf besar (A,B,C,D,E,F).
%f Nombor titik apungan (float).
%e float dalam bentuk eksponen.
%g float dalam bentuk biasa atau eksponen bergantung kepada nilainya.
%E float eksponen ditulis dengan ‘E’
%G Sama seperti ‘g’ tetapi eksponen ditulis dengan ‘E’
%c aksara
%s string (rentetan aksara)

Senarai nilai pada skrin boleh terdiri daripada nama-nama pembolehubah, pemalar, ungkapan,
dan nama fungsi yang nilainya hendak dicetak. Setiap aksara penentuan dalam kawalan
format mesti mempunyai satu pembolehubah dalam senarai.

Contoh 7.1:

/* penggunaan fungsi printf() untuk memaparkan rentetan aksara


dan nombor */

#include <stdio.h>
void main()
{
char nama[20] = “Ahmad”;
int umur = 25;
printf(“Nama saya ialah %s dan saya berumur %d tahun.\n”,nama,umur);
}

Output:
Nama saya ialah Ahmad dan saya berumur 25 tahun.

Dalam contoh di atas, dua pembolehubah telah diisytiharkan, jenis aksara rentetan dan jenis
int. Untuk memaparkan nilai nama, %s digunakan, dan untuk memaparkan nilai integer umur,
%d digunakan.

46 OUM
TOPIK 7 INPUT DAN OUTPUT

Selain daripada jujukan pelepas ‘\n’ terdapat juga aksara lain yang boleh digunakan dalam
rentetan format_output seperti dalam Jadual 7.2

Jadual 7.2: Aksara Istimewa dalam format_output

Jujukan Pelepas Maksud


\a Loceng
\b undur ruang (backspace)
\f suap borang (form feed)
\n baris baru (newline)
\r lajur pertama (carriage return)
\t tab
\v tab menegak (vertical tab)
\\ \
\’ ‘
\” “
\0 aksara nol

Latihan 7.1
1. Berikan format fungsi printf().
2. Sebelum anda boleh menggunakan fungsi printf() atau fungsi scanf(),
apakah harus anda lakukan?

7.2 MEMAPARKAN INTEGER


Jika suatu panggilan fungsi printf() mempunyai senarai nilai untuk dipaparkan, maka
format_outputnya mestilah mempunyai spesifikasi bagi nilai tersebut. Integer boleh di paparkan
menggunakan format %d.

Contoh 7.2:

/* Memaparkan 2 nombor integer */


#include <stdio.h>
void main()
{
int x, y;
x = 10;
y = 20;

printf(“%d %d”, x, y);


}

OUM 47
INPUT DAN OUTPUT TOPIK 7

Output:
10 20

Format pembolehubah yang dipaparkan boleh diubahsuai dengan cara memasukkan


pengubahsuai di antara % dan aksara tentuan format:

Pengubahsuai Penerangan
- nilai akan dipaparkan bermula dari kiri
+ menunjukkan tanda + atau – untuk nilai-nilai positif atau negatif
0 Memaparkan digit 0 dihadapan nilai yang dipaparkan
nombor memaparkan nilai menggunakan nombor sebagai had saiz paparan

Contoh 7.3:

#include <stdio.h>
void main()
{
int x = 123;
printf(“Baris pertama : %3d\n”, x);
printf(“Baris kedua : %10d\n”, x);
printf(“Baris ketiga : %-6d\n”, x);
printf(“Baris keempat : %05d\n”, x);
}

Output:

Baris pertama :123 (tiada ruang kosong)


Baris kedua : ———123 (7 tempat kosong di hadapan)
- menunjukkan satu tempat kosong
Baris ketiga : 123— (2 tempat kosong di belakang)
Baris keempat :00123 (2 aksara ‡ dihadapan)

Latihan 7.2
1. Tulis aturcara C yang boleh memaparkan hasil tambah dua nombor
integer.

7.3 MEMAPARKAN AKSARA


Spesifikasi %c ini akan dipadankan dengan nilai aksara yang hendak dicetak.

Perhatikan pula contoh berikut:

Contoh 7.4:

#include <stdio.h>

48 OUM
TOPIK 7 INPUT DAN OUTPUT

void main()
{
printf(“%c %c %c %c %c %c”,‘U’,‘N’,‘I’,‘T’,‘E’,‘M’);
}
Output:
UNITEM
Setiap pemalar aksara akan dipadankan dengan jujukan spesifikasi dan dioutputkan. Senarai
nilai tersebut boleh juga terdiri daripada pemboleh ubah. Pemadanan yang sama juga
dilakukan.

Contoh 7.5:

#include <stdio.h>
void main()
{
aksara1 = ‘U’;
aksara2 = ‘N’;
aksara3 = ‘I’;
aksara4 = ‘T’;
aksara5 = ‘E’;
aksara6 = ‘M’;
printf(“%c %c %c %c %c %c “,aksara1,aksara2,aksara3,
aksara4,aksara5,aksara6);
}
Output:
U N I T E M
Contoh 7.6:

/* Aturcara yang akan mencetak tiga aksara A, B dan C dalam


bentuk aksara dan numerik.*/
#include <stdio.h>
void main()
{
char a = ‘A’, b = ‘B’, c = ‘C’;
printf(“%c %c %c\n”, a, b, c);
printf(“%d %d %d\n”, a, b, c);
}

Output pada skrin :


A B C
65 66 67

OUM 49
INPUT DAN OUTPUT TOPIK 7

Latihan 7.3
1. Paparkan aksara tersebut dalam bentuk aksara dan numerik.
(a) ‘X’
(b) ‘x’
(c) ‘$’
(d) ‘%’

7.4 MEMAPARKAN NOMBOR NYATA (FLOAT)


Apabila kita ingin mencetak nilai numerik, kita perlu menggunakan spesifikasi output yang
sesuai dengan jenis nilai tersebut. Spesifikasi %f digunakan untuk mencetak nilai nyata.

Atur cara di bawah menunjukkan cara untuk mencetak nilai integer dan nyata.

Contoh 7.7:

/* Mencetak nilai integer dan nyata */


#include <stdio.h>
void main() {
int nilai1;
float nilai2;
nilai1 = 10;
nilai2 = 5.55;
printf(“Nilai pertama = %d\n”, nilai1);
printf(“Nilai kedua = %f\n”, nilai1 – nilai2);
}
Output:
Nilai pertama = 10
Nilai kedua = 4.45000

Pada panggilan fungsi printf() yang kedua, ungkapan nilai1 – nilai2 akan dinilaikan dahulu dan
hasilnya ialah 4.45. Nilai ini akan mengisi ruang spesifikasi %f dalam rentetan tersebut. Oleh
kerana jenis data float mempunyai kepersisan 6, maka output yang diperolehi adalah dalam
bentuk 6 titik perpuluhan. Berikut ialah output yang dipaparkan.

Nilai pertama = 10
Nilai kedua = 4.450000

Untuk mendapatkan nilai yang betul kepada 2 titik perpuluhan, boleh menggunakan
pengubahsuai nombor untuk menghadkan bilangan nombor yang dipaparkan selepas titik
perpuluhan.

50 OUM
TOPIK 7 INPUT DAN OUTPUT

Contoh 7.8:
/* Aturcara yang akan memaparkan hasil tambah 2 nombor jenis float */
#include <stdio.h>
void main()
{
float nom1, nom2, hasil = 0;
nom1 = 5.5;
nom2 = 7.12;
hasil = nom1 + nom2;
printf(“Hasil tambah %0.2f dan %0.2f ialah %0.2f”, nom1, nom2, hasil);
}
Output pada skrin :
Hasil tambah 5.50 dan 7.12 ialah 12.62

Latihan 7.4

1. Andaikan x1 dan x2 adalah nombor jenis float dan nilai x1 ialah 8.0 dan
x2 ialah -2.5. Paparkan nilai-nilai x1 dan x2 seperti dibawah:
x1 = 8.0 x2 = -2.5

7.5 MEMAPARKAN RENTETAN


Data yang paling mudah dicetak atau dioutputkan adalah rentetan. Kita hanya perlu tuliskan
rentetan yang hendak dicetak sebagai format_output dalam fungsi printf(). Rentetan tersebut
akan dicetak sebagaimana kita menulisnya. Sebagai contoh:

printf(“Selamat Datang Ke UNITEM.”);

akan menghasilkan output berikut pada paparan.

Selamat Datang Ke UNITEM.

Perhatikan yang semua aksara di dalam tanda “ “ akan dicetak termasuklah ruang kosong.
Jujukan pelepas ‘\n’ perlu diletakkan di hujung ayat jika kursor dikehendaki pada baris baru.

Andaikan nama adalah suatu pemboleh ubah rentetan yang diumpukkan nilai Mohamad Reza.
Perhatikan bagaimana spesifikasi %s menterjemahkan pemboleh ubah tersebut kepada output
dalam contoh dibawah.

Contoh 7.9:

/* Mencetak nama */
#include <stdio.h>
void main()
{
char nama[] = “Mohamad Reza”;
printf(“%s”, nama);
}

OUM 51
INPUT DAN OUTPUT TOPIK 7

Outputnya adalah:

Mohamad Reza

Nilai pemboleh ubah nama akan dipadankan dengan spesifikasi %s dan dioutputkan

7.6 FUNGSI scanf()


Fungsi ini membenarkan kita berinteraksi dengan atur cara yang ditulis untuk menerima input
dari pengguna. Nilai yang diinput dipadankan dengan pemboleh ubah berdasarkan format
yang diberikan dan disimpan dalam memori sistem komputer.
Perhatikan bentuk umum fungsi scanf():
scanf (kawalan format, <alamat>senarai_pembolehubah);

Fungsi scanf() memerlukan kawalan format yang merupakan rentetan aksara yang
menentukan bentuk rentetan input. Rentetan ini hampir sama dengan kawalan format dalam
fungsi printf().

Jadual 7.3: Spesifikasi Format untuk scanf()

Kawalan Format Output


%d Integer dalam bentuk desimal.
%i Integer dalam bentuk desimal.
%u Integer desimal tak bertanda.
%o Integer dalam bentuk oktal.
%f Nombor titik apungan (float).
%e float dalam bentuk eksponen.
%g float dalam bentuk biasa atau eksponen bergantung kepada nilainya.
%c aksara
%s string (rentetan aksara)

7.7 INPUT PEMBOLEH UBAH


Kecuali beberapa pengecualian kecil, scanf() adalah sama seperti printf(). Satu
perbezaan utama scanf() dari printf() ialah ia memerlukan alamat dimana
pembolehubah akan menyimpan nilai yang akan diinput kelak. Simbol alamat ialah &. Untuk
menginput jenis data rentetan aksara pula, simbol alamat tidak diperlukan.

Contoh 7.10:

/* Aturcara C yang akan menginput dua nilai integer dan memaparkan


hasil tambah. */

52 OUM
TOPIK 7 INPUT DAN OUTPUT

#include <stdio.h>
void main()
{
int nom1, nom2, hasiltambah;
printf(“Masukkan nombor pertama: “);
scanf(“%d”, &nom1);
printf(“Masukkan nombor kedua: “);
scanf(“%d”, &nom2);
hasiltambah = nom1 + nom2;
printf(“Hasil tambah %d dan %d ialah %d”, nom1, nom2, hasiltambah);
}

Satu masalah utama dalam atur cara di atas adalah penulis atur cara mengandaikan yang
pengguna atur cara mengetahui apakah nilai yang perlu diinput. Biasanya dalam menulis atur
cara, kita memaparkan mesej yang sesuai untuk memaklumkan pengguna supaya
memasukkan nilai yang dikehendaki.

Berikut adalah contoh aturcara yang akan menginput data untuk suatu produk, iaitu jenama
produk (rentetan aksara), nosiri produk (int) dan harga (float).

Contoh 7.11:

/* Aturcara C yang menginput data mengenai sejenis produk */

#include <stdio.h>
void main()
{
char jenama[20];
int nosiri;
float harga;

printf(“Produk: Jenama, no siri dan harga: “);


scanf(“%s %d %f”, jenama, &nosiri, &harga);
}

Ketika menginput data, anda mesti asingkan setiap data menggunakan sekurang-kurangnya
satu ruang kosong. Anda boleh memasukkan data menggunakan beberapa cara:

toshiba 12918 2999.90

atau

toshiba 12918
2999.90

atau

toshiba
12918
2999.90

OUM 53
INPUT DAN OUTPUT TOPIK 7

Latihan 7.5

1. Tulis aturcara C yang akan menginput jejari bulatan. Kirakan luas untuk
bulatan tersebut. (Nota: diberi nilai PI (P) ialah 3.1415)

RUMUSAN
Dalam topik ini anda telah belajar bagaimana untuk mengarahkan atur cara yang boleh
menerima input daripada papan kekunci (scanf) dan mencetak output ke paparan (printf).
Anda perlu berhati-hati apabila memasukkan input mengikut spesifikasi yang dinyatakan dalam
atur cara. Kita juga boleh memformatkan output seperti mana yang kita kehendaki.

54 OUM

You might also like