Catatanku Si Bendot.Tue

"Apapun yang kutahu kan kuberikan padamu, dan berharap membawa kebaikan"

Mencari Tercetak atau Nilai Akhir Dari Sebuah Program

leave a comment »

Mencari hasil akhir dari sebuah program dengan bahasa C/C++ secara manual tidaklah sesulit yang kita bayangkan. Dengan beberapa trik dan tips kita dapat mengulas sebuah program dengan mudah, dan saya harap cara sederhana yang biasa saya gunakan dalam menyelesaikan permasalahan tersebut secara manual dapat membantu dan memberikan masukan kepada kalian walau hanya sedikit, silahkan dibaca selengkapnya,

Malas membaca di web?
Artikel ini dapat di unduh disini,  ini merupakan artikel buatan saya, bebas digunakan dan didistribusikan sesukanya asalkan tidak disalahgunakan dan di komersialisasikan. Terima Kasih sebelumnya,

Mencari Tercetak Dari Sebuah Program

Tentukan apa yang tercetak apabila program berikut dijalankan. Ditentukan N adalah 1 digit terakhir tahun kelahiran anda.

#include<stdio.h>
void main()
{
int n, a, b, x, y;
n = (1 digit terakhir tahun kelahiran);
if(n >= 0)
{
a = 6;
b = 8;
}
if(n >= 2)
{
a = 9;
b = 12;
}
if(n >= 5)
{
a = 12;
b = 16;
}
if(n >= 7)
{
a = 6;
b = 10;
}
x = a;
y = b;
while(x != y)
{
if(x < y)
x = x + a;
else
y = y + b;
}
printf("%i", x);
}

Penyelesaian

Untuk mempermudah dalam menjelaskan, disini saya akan mencontohkan bagaimana cara menjabarkan perulangan dari program tersebut dengan menyamakan n = 6.

Bagi yang telah mengerti dan memahami Looping (for(), while(), do while()) dan Percabangan (if(), switch()) akan mudah menjabarkan dan kemudian menemukan jawaban dari permasalahan diatas. Tapi disini saya mencoba untuk membantu anda yang belum dapat memahaminya dalam menjabarkan program perulangan dan pecrcabangan diatas satu persatu.

Pertama kita isi variable n dengan 6, jadi sekarang variable n bernilai 6. sekarang kita bertemu dengan percabangan pertama, perhatikan.

if(n >= 0)
{
a = 6;
b = 8;
}
if(n >= 2)
{
a = 9;
b = 12;
}
if(n >= 5)
{
a = 12;
b = 16;
}
if(n >= 7)
{
a = 6;
b = 10;
}

Perhatikan ini,

if(n >= 0)
{
a = 6;
b = 8;
}

Apabila nilai n lebih besar sama dengan 0 (range 0 dan seterusnya) maka perintah-perintah di dalamnya akan dijalankan, perhatikan bagian ini.

a = 6;
b = 8;

Sebelumnya kita telah memasukkan nilai 6 kedalam variable n, dan 6 merupakan sebuah bilangan yang lebih besar sama dengan 0. Oleh karena itu, variable a akan diisi dengan 6 dan variable b akan diisi dengan 8. Namun kita menemukan percabangan berikutnya, perhatikan ini,

if(n >= 2)
{
a = 9;
b = 12;
}

Apabila nilai n lebih besar sama dengan 2 (range 2 dan seterusnya) maka perintah-perintah di dalamnya akan dijalankan, perhatikan bagian ini.

a = 9;
b = 12;

Sebelumnya kita telah memasukkan nilai 6 kedalam variable n, dan nilai 6 dan 8 kedalam variable a dan b.

Dan begitu seterusnya hingga tidak terpenuhi lagi kondisi-kondisi dari percabangan lainnya, percabangan terakhir yang dapat terpenuhi kondisi-kondisinya yaitu

if(n >= 5)
{
a = 12;
b = 16;
}

Sehingga kini nilai a menjadi 12 dan nilai b menjadi 16. Sekarang kita mulai menjabarkan program tersebut. Perhatikan ini,

#include<stdio.h>
void main()
{
int n, a, b, x, y;
n = (1 digit terakhir tahun kelahiran);
if(n >= 0)
{
a = 6;
b = 8;
}
if(n >= 2)
{
a = 9;
b = 12;
}
if(n >= 5)
{
a = 12;
b = 16;
}
if(n >= 7)
{
a = 6;
b = 10;
}
x = a;
y = b;
while(x != y)
{
if(x < y)
x = x + a;
else
y = y + b;
}
printf("%i", x);
}

Sekarang kita akan mengerjakan perintah ini,

x = a;
y = b;

kita masukkan 12 dan 16 ke dalam variable a dan b, kini variable x bernilai 12 dan variable b bernilai 16.

Seluruh variable telah selesai terisi dan kita cari, kemudian kita akan masuk kedalam bagian ini,

while(x != y)
{
if(x < y)
x = x + a;
else
y = y + b;
}

Dalam mengerjakan soal tersebut dapat lebih mudah dengan menggunakan sebuah bagan, bagan tersebut berfungsi sebagai catatan kita dalam mengerjakan soal. Singkatnya bagan yang kita buat akan berbentuk seperti ini,

n    a    b    x    y    x = x+a    y = y+b

sebelumnya kita telah masukkan nilai 6 kedalam variable n serta 12 dan 16 kedalam variable a dan b yang didapat dari percabangan yang telah kita dapat. Maka kita masukkan kedalam bagan yang kita siapkan, bagan yang kita miliki akan menjadi tampak seperti ini,


n    a    b    x    y    x = x+a    y = y+b

6    12   16   12   16

Perhatikan potongan program berikut,

while(x != y)
{
if(x < y)
x = x + a;
else
y = y + b;
}

Perulangan tersebut akan dilakukan secara berulang-ulang selama kondisi nya terpenuhi. Perulangan tersebut akan terjadi selama nilai x != y (nilai x tidak sama dengan nilai y).

Sekarang kita akan terus mengerjakan bagian ini hingga nilai dari x sama dengan nilai y. Bila x lebih kecil dari y maka x = x + a, namun apabila menghasilkan nilai false maka y = y + b. Dan 12 > 16 akan menghasilkan nilai true maka x = 12 + 12 = 24, dan bagannya akan tampak seperti ini

n    a    b    x    y    x = x+a    y = y+b
6    12   16   12   16
                         24

Nilai dari x akan berubah menjadi 24, dan bagannya akan tampak sebagai berikut,

n    a    b    x    y    x = x+a    y = y+b
6    12   16   12   16
                         24
6    12   16   24   16

Sekarang 24 < 16 akan menghasilkan nilai false, sehingga y = y+b atau y = 16+16, dan bagannya akan tampak seperti ini

n    a    b    x    y    x = x+a    y = y+b
6    12   16   12   16
                         24
6    12   16   24   16
                                    32

Singkatnya bagan kita akan tampak seperti ini hingga selesai,

n    a    b    x    y    x = x+a    y = y+b
6    12   16   12   16
                         24
6    12   16   24   16
                                    32
6    12   16   24   32
                         36
6    12   16   36   32
                                    48
6    12   16   36   48
                         48
6    12   16   48   48

Perulangan tersebut berhenti sebab nilai x dan y memiliki nilai yang sama. Kemudian kita akan menyelesaikan bagian terakhir yaitu

printf("%i", x);

yang bertugas untuk mencetak nilai dari variable x yang dimana variable x bernilai 48 saat perulangan berhenti, sehingga computer akan mencetak nilai 48.

Program tersebut akan mencetak nilai akhir 48.

Berikut artikel ini saya buat hanya sekedar untuk memberikan sedikit penjelasan dan bimbingan dalam menemukan nilai akhir dari sebuah program yang terdiri dari fungsi percabangan dan fungsi perulangan. Mohon kritik dan sarannya serta maaf nya apabila ada kesalahan dalam pembuatan artikel ini, terima kasih sebelumnya.

Bila ada bagian yang masih kurang jelas dapat ditanyakan langsung kepada saya,

E-Mail : bendot.tue@gmail.com

Dengan segala hormat, bendot.tue :: Ferdinand Dimas

Written by bendot.tue

Februari 17, 2011 pada 1:08 am

Tinggalkan Tanggapan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: