<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>STIE-MCE Library</title>
	<atom:link href="http://library.stie-mce.ac.id/feed/" rel="self" type="application/rss+xml" />
	<link>http://library.stie-mce.ac.id</link>
	<description>Perpustakaan Sekolah Tinggi Ilmu Ekonomi Malangkucecwara</description>
	<pubDate>Fri, 13 Mar 2009 03:48:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pernyataan switch</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/pernyataan-switch/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/pernyataan-switch/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:46:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Struktur Kontrol JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=775</guid>
		<description><![CDATA[Penyataan percabangan kedua yang dimiliki Java adalah switch. Pernyataan switch lebih jarang digunakan, tetapi sering bermanfaat apabila kita ingin menuliskan percabangan multi arah.
Pernyataan switch memiliki bentuk sebagai berikut :

switch (ekspresi) {
    case nilai1:
        perintah1
        break;
    [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Penyataan percabangan kedua yang dimiliki Java adalah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">switch</span></code></span>. Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">switch</span></code></span> lebih jarang digunakan, tetapi sering bermanfaat apabila kita ingin menuliskan percabangan multi arah.</p>
<p>Pernyataan switch memiliki bentuk sebagai berikut :<span id="more-775"></span></p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">switch</span> <span class="br0">(</span>ekspresi<span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">case</span> nilai1<span class="sy0">:</span>
        perintah1
        <span class="kw1">break</span><span class="sy0">;</span>
    <span class="kw1">case</span> nilai2<span class="sy0">:</span>
        perintah2
        <span class="kw1">break</span><span class="sy0">;</span>
    <span class="kw1">case</span> nilai3<span class="sy0">:</span>
        perintah3
        <span class="kw1">break</span><span class="sy0">;</span>
    <span class="kw1">default</span><span class="sy0">:</span>
        perintah_lain
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Di sini pernyataan switch akan mencari nilai <span class="geshifilter"><code class="geshifilter-java">ekspresi</code></span> yang sesuai dengan nilai-nilai yang didaftarkan pada pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">case</span></code></span>. Jika salah satu nilai ditemui, maka program akan melompat ke cabang <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">case</span></code></span> tersebut dan melakukan perintah yang terdapat di sana. Jika tidak ditemui, maka program akan melompat ke perintah yang terdapat pada pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">default</span></code></span>.</p>
<p style="text-align: justify;"><strong>Catatan</strong> ekspresi hanya bisa berbentuk nilai bilangan bulat (int, short, dan sejenisnya) atau karakter, sehingga kita tidak bisa menggunakan switch untuk mengevaluasi ekspresi yang berbentuk <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">String</span></code></span>.</p>
<p style="text-align: justify;">Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> di atas sebetulnya tidak harus selalu ada. Tetapi, perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> di sini memerintahkan komputer agar segera keluar dari blok <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">switch</span></code></span> apabila perintah tersebut telah selesai dilaksanakan.</p>
<p style="text-align: justify;">Apabila perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> tidak diberikan, maka program akan terus mengeksekusi perintah lain meskipun sudah berada di luar nilai yang tertera dalam pernyataan casenya.</p>
<p>Misalnya, lihat kode berikut ini :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">switch</span> <span class="br0">(</span>N<span class="br0">)</span>
    <span class="kw1">case</span> <span class="nu0">1</span><span class="sy0">:</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Angka tersebut bernilai 1"</span><span class="br0">)</span><span class="sy0">;</span>
        <span class="kw1">break</span><span class="sy0">;</span>
    <span class="kw1">case</span> <span class="nu0">2</span><span class="sy0">:</span>
    <span class="kw1">case</span> <span class="nu0">3</span><span class="sy0">:</span>
    <span class="kw1">case</span> <span class="nu0">4</span><span class="sy0">:</span>
    <span class="kw1">case</span> <span class="nu0">5</span><span class="sy0">:</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Angka tersebut bernilai 2, 3, 4, atau 5"</span><span class="br0">)</span><span class="sy0">;</span>
        <span class="kw1">break</span><span class="sy0">;</span>
    <span class="kw1">case</span> <span class="nu0">6</span><span class="sy0">:</span>
    <span class="kw1">case</span> <span class="nu0">7</span><span class="sy0">:</span>
    <span class="kw1">case</span> <span class="nu0">8</span><span class="sy0">:</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Angka tersebut bernilai 6, 7, atau 8"</span><span class="br0">)</span><span class="sy0">;</span>
        <span class="kw1">break</span><span class="sy0">;</span>
    <span class="kw1">default</span><span class="sy0">:</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Angka tersebut tidak bernilai 1 - 8"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Salah satu aplikasi di mana pernyataan switch berguna adalah untuk memproses menu. Menu memiliki beberapa pilihan dan user akan diminta untuk memilih suatu pilihan. Kita dapat menggunakan switch untuk menginstruksikan komputer untuk melakukan tugas tertentu sesuai dengan menu yang dipilih oleh user.</p>
<p style="text-align: justify;">Jika Anda ingat pernyataan <span class="geshifilter"><code class="geshifilter-java">main<span class="br0">(</span><span class="br0">)</span></code></span> pada program Java, pernyataan main memiliki parameter <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">String</span><span class="br0">[</span><span class="br0">]</span> args</code></span>, di mana args merupakan argumen yang diberikan pada saat program dijalankan melalui konsol. Biasanya argumen yang diberikan berupa opsi bagaimana program harus dilaksanakan. Di sini pernyataan switch juga berguna untuk memilih bagaimana program akan berjalan.</p>
<p style="text-align: justify;">Jika Anda terbiasa atau pernah bergaul dengan Linux, maka tidak asing untuk menemukan perintah pada Linux seperti &#8220;ls -l&#8221; atau &#8220;tar xfz blabla&#8221;. Di sini ls atau tar adalah nama program dan &#8220;-l&#8221; atau &#8220;xfz blabla&#8221; adalah argumen yang diberikan pada saat program dijalankan.</p>
<p style="text-align: justify;"><strong>Pernyataan kosong</strong><br />
Pernyataan kosong sebenarnya merupakan blok kosong, atau sama dengan {} tanpa perintah apa-apa di dalamnya. Dalam Java, pernyataan kosong juga berarti tanda ; sehingga apabila Anda menulis kode seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>x <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">)</span><span class="sy0">;</span>
    perintah1</pre>
</div>
<p>maka perintah1 akan tetap dilaksanakan walaupun x &lt;= 0.
</p>
<p style="text-align: justify;">Perintah kosong sering merupakan sumber kesalahan dan salah satu fitur yang sulit untuk dicari kesalahannya pada saat debugging. Misalnya perintah berikut</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"hallo"</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Anda berharap untuk mencetak kata hallo 10x di layar, pada kenyataannya hanya 1 hallo yang dicetak. Kenapa? Karena tanda &#8220;;&#8221; setelah for menyatakan bahwa program tidak melakukan apa-apa di dalam perulangan. Perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">&#8220;hallo&#8221;</span><span class="br0">)</span></code></span> tidak berada di dalam perulangan for, sehingga perintah ini hanya dijalankan 1x saja.</p>
<p style="text-align: justify;"><strong>Pernyataan-pernyataan lain</strong><br />
Hingga saat ini kita sudah membahas hampir semua pernyataan yang Java sediakan. Ada beberapa yang akan kita bahas kemudian, tetapi pernyataan-pernyataan ini merupakan pernyataan lanjutan Java, seperti <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">return</span></code></span> yang digunakan untuk membuat subrutin sendiri, atau <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">try</span>&#8230;<span class="kw1">catch</span></code></span> dan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">throw</span></code></span> untuk mengontrol alur kesalahan apabila ditemui di tengah program (atau dengan kata lain eksepsi atau pengecualian), dan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">synchronized</span></code></span> untuk mengatur kontrol untuk multi-threading.</p>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/pernyataan-switch/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pernyataan if</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/pernyataan-if/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/pernyataan-if/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:41:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Struktur Kontrol JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=770</guid>
		<description><![CDATA[Pernyataan if merupakan salah satu pernyataan percabangan pada Java, dengan bentuk umum seperti

if (suatu_kondisi)
     perintah1
else
    perintah2

Seperti biasa, perintah1 dan perintah2 bisa berbentuk blok yang terdiri dari beberapa perintah. Pernyataan if merupakan bentuk percabangan 2 arah. Bagian else yang terdiri dari kata &#8220;else&#8221; dan perintah2 tidak selalu harus ada.
Perhatikan [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Pernyataan if merupakan salah satu pernyataan percabangan pada Java, dengan bentuk umum seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span>
     perintah1
<span class="kw1">else</span>
    perintah2</pre>
</div>
<p style="text-align: justify;">Seperti biasa, <span class="geshifilter"><code class="geshifilter-java">perintah1</code></span> dan <span class="geshifilter"><code class="geshifilter-java">perintah2</code></span> <span id="more-770"></span>bisa berbentuk blok yang terdiri dari beberapa perintah. Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span> merupakan bentuk percabangan 2 arah. Bagian <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">else</span></code></span> yang terdiri dari kata &#8220;else&#8221; dan perintah2 tidak selalu harus ada.</p>
<p style="text-align: justify;">Perhatikan bahwa baik perintah1 dan perintah2 bisa merupakan pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span> itu sendiri. Ada beberapa hal menarik yang mungkin berguna. Ambil contoh dalam pernyataan berikut</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>x <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">)</span>
    <span class="kw1">if</span> <span class="br0">(</span>y <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"perintah1"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="kw1">else</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"perintah2"</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Pertama-tama, komputer tidak peduli bagaimana Anda memformat paragraf dan indentasi dari pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span> tersebut. Java akan menganggap <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">else</span></code></span> terkait dengan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span> terdekat, sehingga kode di atas akan dianggap seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>x <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">)</span>
    <span class="kw1">if</span> <span class="br0">(</span>y <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"perintah1"</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"perintah2"</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;"><span class="geshifilter"><code class="geshifilter-java"><span class="kw1">else</span></code></span> di program di atas akan dianggap bagian dari pernyataan jika y &gt; 0, padahal yang kita maksud adalah else jika x &gt; 0. Untuk memperbaikinya, kita tambahkan tanda kurung {} sehingga menjadi</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>x <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">if</span> <span class="br0">(</span>y <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"perintah1"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span>
<span class="kw1">else</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"perintah2"</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Kedua pernyataan tersebut memiliki arti yang berbeda. Jika x &lt;= 0, pada kode pertama Java tidak mencetak apa-apa ke layar, sedangkan kode kedua java akan mencetak &#8220;perintah2&#8243;.</p>
<p>Lebih menarik lagi, perhatikan kode berikut</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>kondisi_pertama<span class="br0">)</span>
    perintah1
<span class="kw1">else</span>
    <span class="kw1">if</span> <span class="br0">(</span>kondisi_kedua<span class="br0">)</span>
        perintah2
    <span class="kw1">else</span>
        perintah3</pre>
</div>
<p style="text-align: justify;">Lagi-lagi karena Java tidak membedakan indentasi penulisan, maka kode tersebut akan diterjemahkan Java seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>kondisi_pertama<span class="br0">)</span>
    perintah1
<span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>kondisi_kedua<span class="br0">)</span>
    perintah2
<span class="kw1">else</span>
    perintah3</pre>
</div>
<p style="text-align: justify;">Dengan kata lain perintah tersebut lebih seperti percabangan 3 arah. Komputer akan mengeksekusi hanya salah satu dari <span class="geshifilter"><code class="geshifilter-java">perintah1</code></span>, <span class="geshifilter"><code class="geshifilter-java">perintah2</code></span>, atau <span class="geshifilter"><code class="geshifilter-java">perintah3</code></span>. Komputer akan mengevaluasi <span class="geshifilter"><code class="geshifilter-java">kondisi_pertama</code></span>, jika <span class="geshifilter"><code class="geshifilter-java"><span class="kw2">true</span></code></span>, maka <span class="geshifilter"><code class="geshifilter-java">perintah1</code></span> dieksekusi sementara <span class="geshifilter"><code class="geshifilter-java">perintah2</code></span> dan <span class="geshifilter"><code class="geshifilter-java">perintah3</code></span> diabaikan. Jika <span class="geshifilter"><code class="geshifilter-java"><span class="kw2">false</span></code></span>, maka <span class="geshifilter"><code class="geshifilter-java">kondisi_kedua</code></span> akan dievaluasi. Jika <span class="geshifilter"><code class="geshifilter-java"><span class="kw2">true</span></code></span>, maka <span class="geshifilter"><code class="geshifilter-java">perintah2</code></span> akan dieksekusi dan <span class="geshifilter"><code class="geshifilter-java">perintah3</code></span> diabaikan. Jika <span class="geshifilter"><code class="geshifilter-java"><span class="kw2">false</span></code></span>, maka hanya <span class="geshifilter"><code class="geshifilter-java">perintah3</code></span> saja yang dieksekusi.</p>
<p>Berikut ini adalah contoh penggunaan percabangan 3 arah.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>suhu <span class="sy0">&lt;</span> <span class="nu0">20</span><span class="br0">)</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Dingin"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>suhu <span class="sy0">&lt;</span> <span class="nu0">30</span><span class="br0">)</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Lumayan"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="kw1">else</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Panas"</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Kita bahkan dapat membentuk pernyataan if-else ini menjadi percabangan N arah, misalnya</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>kondisi_pertama<span class="br0">)</span>
    perintah1
<span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>kondisi_kedua<span class="br0">)</span>
    perintah2
<span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>kondisi_ketiga<span class="br0">)</span>
    perintah3
<span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>kondisi_keempat<span class="br0">)</span>
    perintah4
.
.
.
<span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>kondisi_keNminus1<span class="br0">)</span>
    perintahNmin1
<span class="kw1">else</span>
    perintahN</pre>
</div>
<p style="text-align: justify;">Contoh berikut ini adalah mengurutkan 3 bilangan dari kecil ke besar. Misalnya kita mempunyai 3 variabel a,b dan c. Bilangan yang paling kecil adalah bilangan yang lebih kecil dari kedua bilangan yang lain. Sekarang mari kita rangkai logika untuk menentukan urutan bilangan dari kecil ke besar. Mula-mula kita cek apakah a lebih kecil dari b dan c, yaitu dengan pernyataan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> b <span class="sy0">&amp;&amp;</span> a <span class="sy0">&lt;</span>c<span class="br0">)</span></pre>
</div>
<p style="text-align: justify;">Jika a betul merupakan bilangan terkecil, maka kita uji apakah b lebih kecil dari c dengan perintah</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>b <span class="sy0">&lt;</span> c<span class="br0">)</span></pre>
</div>
<p style="text-align: justify;">Jika a bukan bilangan terkecil, maka b atau c, salah satunya bisa merupakan bilangan terkecil. Kita hanya perlu membandingkan apakah b lebih kecil dari c dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>b <span class="sy0">&lt;</span> c<span class="br0">)</span></pre>
</div>
<p style="text-align: justify;">Jika b lebih kecil dari c, berarti kita tahu bahwa b adalah bilangan terkecil. Tetapi kita belum tahu apakah bilangan terkecil berikutnya adalah a atau c, sehingga kita harus menguji lagi dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> c<span class="br0">)</span></pre>
</div>
<p style="text-align: justify;">Jika a lebih kecil dari c, maka urutannya adalah b, a, c. Jika tidak, maka urutannya adalah b, c, a.</p>
<p style="text-align: justify;">Demikian halnya apabila jika b &gt; c, maka kita bisa tentukan urutan bilangannya.</p>
<p>Keseluruhan logika ini, bisa kita tuangkan dalam bentuk :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> b <span class="sy0">&amp;&amp;</span> a <span class="sy0">&lt;</span> c<span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">if</span> <span class="br0">(</span>b <span class="sy0">&lt;</span> c<span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c<span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> b<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span> <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>b <span class="sy0">&lt;</span> c<span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">if</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> c<span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c<span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span>
    <span class="kw1">if</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> b<span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c<span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Logika di atas bisa juga dituangkan dengan cara lain, yaitu melihat urutannya. Pertama kita cek apakah a &lt; b. Jika ya, kita tahu bahwa urutannya pasti a terlebih dahulu baru b. Kemudian kita lihat apakah c berada di sebelah kiri a atau disebelah kanan b atau di tengah-tengah.</p>
<p style="text-align: justify;">Demikian seterusnya jika urutannya b terlebih dahulu baru a. Sehingga kodenya bisa dituliskan dalam bentuk :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> b<span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">if</span> <span class="br0">(</span>c <span class="sy0">&lt;</span> a<span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> b<span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>c <span class="sy0">&gt;</span> b<span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c<span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> b<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span>
    <span class="kw1">if</span> <span class="br0">(</span>c <span class="sy0">&lt;</span> b<span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a<span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">(</span>c <span class="sy0">&gt;</span> a<span class="br0">)</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c<span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">else</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>b <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> c <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> a<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/pernyataan-if/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Perulangan for</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/perulangan-for/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/perulangan-for/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:37:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Struktur Kontrol JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=766</guid>
		<description><![CDATA[Kita akan membahas bentuk perulangan lain, yaitu perulangan for. Setiap bentuk perulangan for dapat diubah menjadi bentuk perulangan while dengan fungsi yang sama tanpa mengubah alur program. Tetapi tergantung dari permasalahan yang akan kita pecahkan, menulis program dengan for akan membuat alur program lebih mudah dipahami.
Misalnya, kita akan menghitung 1+2+3+4+5+&#8230;+100. Kita bisa ekspresikan program tersebut [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Kita akan membahas bentuk perulangan lain, yaitu perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span>. Setiap bentuk perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> dapat diubah menjadi bentuk perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> dengan fungsi yang sama tanpa mengubah alur program. Tetapi tergantung dari permasalahan yang akan kita pecahkan, menulis program dengan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> akan membuat alur program lebih mudah dipahami.</p>
<p style="text-align: justify;">Misalnya, kita akan menghitung 1+2+3+4+5+&#8230;+100. <span id="more-766"></span>Kita bisa ekspresikan program tersebut dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
jumlah <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="kw1">while</span> <span class="br0">(</span>i <span class="sy0">&lt;=</span> <span class="nu0">100</span><span class="br0">)</span> <span class="br0">{</span>
    jumlah <span class="sy0">+=</span> i<span class="sy0">;</span>
    i<span class="sy0">++;</span>
<span class="br0">}</span></pre>
</div>
<p>Perulangan ini dapat ditulis juga dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">jumlah <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">100</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span>
    jumlah <span class="sy0">+=</span> i</pre>
</div>
<p style="text-align: justify;">Apa point-point penting yang kita lihat dari perubahan ini? Pertama mari kita lihat bentuk penggunaan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> yang umum dilakukan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">inisialisasi variabel
<span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi_variabel<span class="br0">)</span> <span class="br0">{</span>
    perintah
    update_variabel
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Di sini perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> memiliki 3 komponen penting, yaitu inisialisasi, yaitu memberikan nilai awal suatu variabel, suatu_kondisi_variabel, yaitu pengujian bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true, dan terakhir update_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasi perulangan sehingga akan selesai suatu saat, tidak berulang terus menerus.</p>
<p style="text-align: justify;">Pada perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span>, ketiga komponen ini dirangkai menjadi satu dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>inisialisasi_variabel<span class="sy0">;</span> kondisi_variabel<span class="sy0">;</span> update_variabel<span class="br0">)</span>
   perintah</pre>
</div>
<p style="text-align: justify;">atau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskan juga dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>inisialisasi_variabel<span class="sy0">;</span> kondisi_variabel<span class="sy0">;</span> update_variabel<span class="br0">)</span> <span class="br0">{</span>
   banyak_perintah
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah, misalnya memberikan variabel dengan nilai awal tertentu, dalam bentuk <span class="geshifilter"><code class="geshifilter-java">variabel <span class="sy0">=</span> nilai_awal</code></span>.</p>
<p style="text-align: justify;"><span class="geshifilter"><code class="geshifilter-java">kondisi_variabel</code></span> harus berbentuk pernyataan boolean seperti <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> pada pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>. Sedangkan <span class="geshifilter"><code class="geshifilter-java">update_variabel</code></span> juga berbentuk perintah.</p>
<p style="text-align: justify;"><span class="geshifilter"><code class="geshifilter-java">inisialisasi_variabel</code></span>, <span class="geshifilter"><code class="geshifilter-java">kondisi_variabel</code></span>, atau <span class="geshifilter"><code class="geshifilter-java">update_variabel</code></span> dapat dikosongkan dan tidak harus selalu diisi. Bagian yang tidak diisi yang selalu digantikan dengan true, yang artinya perulangan akan terus dieksekusi tanpa henti. Untuk menghentikannya, perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> harus diberikan ditengah-tengah badan perulangan.</p>
<p style="text-align: justify;">Bentuk paling umum dari perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> adalah menghitung. Biasanya perulangan ini memiliki bentuk seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>variabel <span class="sy0">=</span> nilai_minimum<span class="sy0">;</span> variabel <span class="sy0">&lt;=</span> nilai_maksimum<span class="sy0">;</span> variabel<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
    perintah
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1, yang artinya perulangan akan dimulai dengan <span class="geshifilter"><code class="geshifilter-java">nilai_minimum</code></span>, diakhiri dengan <span class="geshifilter"><code class="geshifilter-java">nilai_maksimum</code></span> dengan jeda 1.</p>
<p style="text-align: justify;">Contoh, jika kita ingin berhitung 2,5,8,11,14,17, atau dengan kata lain, mulai dari 2 hingga 17 dengan jeda 3, kita bisa mengekspresikan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">2</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">17</span><span class="sy0">;</span> i <span class="sy0">+=</span> <span class="nu0">3</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p>Untuk menghitung mundur, kita bisa menggunakan perintah seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">20</span><span class="sy0">;</span> i <span class="sy0">&gt;=</span> <span class="nu0">0</span><span class="sy0">;</span> i<span class="sy0">--</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Atau jika kita ingin menghitung maju dan mundur pada saat yang bersamaan, misalnya i dari 1 hingga 10 dan j dari 10 hingga 1, kita bisa ekspresikan dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">1</span>, j <span class="sy0">=</span> <span class="nu0">10</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span>, j<span class="sy0">--</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> j<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;"><strong>Catatan penting!</strong> Variabel yang akan digunakan, dalam contoh di atas i dan j, adalah variabel yang harus dideklarasikan sebelumnya. Java adalah bahasa pemrograman ketat, yang artinya semua harus didefinisikan dengan jelas sebelum digunakan. Untuk banyak kasus, deklarasi variabel dan perulangannya bisa dilakukan serentak pada bagian inisialisasi variabel. Misalnya :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i<span class="br0">)</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Perhatikan ada imbuhan <span class="geshifilter"><code class="geshifilter-java"><span class="kw4">int</span></code></span> di depan inisialisasi variabel i, yang merupakan deklarasi variabel <span class="geshifilter"><code class="geshifilter-java">i</code></span> dengan tipe data <span class="geshifilter"><code class="geshifilter-java"><span class="kw4">int</span></code></span> sekaligus menginisialisasi nilainya dengan 1.</p>
<p><strong>Perulangan for bertingkat</strong></p>
<p style="text-align: justify;">Seperti pada perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>, perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> pun dapat dilakukan bertingkat, artinya perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> di dalam perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span>.</p>
<p>Kita ambil contoh sederhana misalnya membuat tabel perkalian seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"> <span class="nu0">1</span>   <span class="nu0">2</span>   <span class="nu0">3</span>   <span class="nu0">4</span>   <span class="nu0">5</span>   <span class="nu0">6</span>   <span class="nu0">7</span>   <span class="nu0">8</span>   <span class="nu0">9</span>  <span class="nu0">10</span>  <span class="nu0">11</span>  <span class="nu0">12</span>
 <span class="nu0">2</span>   <span class="nu0">4</span>   <span class="nu0">6</span>   <span class="nu0">8</span>  <span class="nu0">10</span>  <span class="nu0">12</span>  <span class="nu0">14</span>  <span class="nu0">16</span>  <span class="nu0">18</span>  <span class="nu0">20</span>  <span class="nu0">22</span>  <span class="nu0">24</span>
 <span class="nu0">3</span>   <span class="nu0">6</span>   <span class="nu0">9</span>  <span class="nu0">12</span>  <span class="nu0">15</span>  <span class="nu0">18</span>  <span class="nu0">21</span>  <span class="nu0">24</span>  <span class="nu0">27</span>  <span class="nu0">30</span>  <span class="nu0">33</span>  <span class="nu0">36</span>
 <span class="nu0">4</span>   <span class="nu0">8</span>  <span class="nu0">12</span>  <span class="nu0">16</span>  <span class="nu0">20</span>  <span class="nu0">24</span>  <span class="nu0">28</span>  <span class="nu0">32</span>  <span class="nu0">36</span>  <span class="nu0">40</span>  <span class="nu0">44</span>  <span class="nu0">48</span>
 <span class="nu0">5</span>  <span class="nu0">10</span>  <span class="nu0">15</span>  <span class="nu0">20</span>  <span class="nu0">25</span>  <span class="nu0">30</span>  <span class="nu0">35</span>  <span class="nu0">40</span>  <span class="nu0">45</span>  <span class="nu0">50</span>  <span class="nu0">55</span>  <span class="nu0">60</span>
 <span class="nu0">6</span>  <span class="nu0">12</span>  <span class="nu0">18</span>  <span class="nu0">24</span>  <span class="nu0">30</span>  <span class="nu0">36</span>  <span class="nu0">42</span>  <span class="nu0">48</span>  <span class="nu0">54</span>  <span class="nu0">60</span>  <span class="nu0">66</span>  <span class="nu0">72</span>
 <span class="nu0">7</span>  <span class="nu0">14</span>  <span class="nu0">21</span>  <span class="nu0">28</span>  <span class="nu0">35</span>  <span class="nu0">42</span>  <span class="nu0">49</span>  <span class="nu0">56</span>  <span class="nu0">63</span>  <span class="nu0">70</span>  <span class="nu0">77</span>  <span class="nu0">84</span>
 <span class="nu0">8</span>  <span class="nu0">16</span>  <span class="nu0">24</span>  <span class="nu0">32</span>  <span class="nu0">40</span>  <span class="nu0">48</span>  <span class="nu0">56</span>  <span class="nu0">64</span>  <span class="nu0">72</span>  <span class="nu0">80</span>  <span class="nu0">88</span>  <span class="nu0">96</span>
 <span class="nu0">9</span>  <span class="nu0">18</span>  <span class="nu0">27</span>  <span class="nu0">36</span>  <span class="nu0">45</span>  <span class="nu0">54</span>  <span class="nu0">63</span>  <span class="nu0">72</span>  <span class="nu0">81</span>  <span class="nu0">90</span>  <span class="nu0">99</span> <span class="nu0">108</span>
<span class="nu0">10</span>  <span class="nu0">20</span>  <span class="nu0">30</span>  <span class="nu0">40</span>  <span class="nu0">50</span>  <span class="nu0">60</span>  <span class="nu0">70</span>  <span class="nu0">80</span>  <span class="nu0">90</span> <span class="nu0">100</span> <span class="nu0">110</span> <span class="nu0">120</span>
<span class="nu0">11</span>  <span class="nu0">22</span>  <span class="nu0">33</span>  <span class="nu0">44</span>  <span class="nu0">55</span>  <span class="nu0">66</span>  <span class="nu0">77</span>  <span class="nu0">88</span>  <span class="nu0">99</span> <span class="nu0">110</span> <span class="nu0">121</span> <span class="nu0">132</span>
<span class="nu0">12</span>  <span class="nu0">24</span>  <span class="nu0">36</span>  <span class="nu0">48</span>  <span class="nu0">60</span>  <span class="nu0">72</span>  <span class="nu0">84</span>  <span class="nu0">96</span> <span class="nu0">108</span> <span class="nu0">120</span> <span class="nu0">132</span> <span class="nu0">144</span></pre>
</div>
<p>Program untuk membuat tabel perkalian tersebut bisa diekspresikan dengan algoritma pseudocode sebagai berikut</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">untuk setiap baris i <span class="sy0">=</span> <span class="nu0">1</span>,<span class="nu0">2</span>,3...,<span class="nu0">12</span>
    cetak perkalian i dengan <span class="nu0">1</span>,<span class="nu0">2</span>,3..12
    cetak baris baru</pre>
</div>
<p style="text-align: justify;">Kalau kita jabarkan lebih lanjut, perintah kedua juga merupakan perulangan dari 1 hingga 12, sehingga algoritma di atas bisa kita tulis sebagai</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">untuk setiap baris i <span class="sy0">=</span> <span class="nu0">1</span>,<span class="nu0">2</span>,3...,<span class="nu0">12</span>
    untuk setiap kolom j <span class="sy0">=</span> <span class="nu0">1</span>,<span class="nu0">2</span>,3...,<span class="nu0">12</span>
        cetak i<span class="sy0">*</span>j
    cetak baris baru</pre>
</div>
<p>Kita bisa terjemahkan ke dalam bahasa Java sebagai</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">12</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>  j <span class="sy0">&lt;=</span> <span class="nu0">12</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span>i<span class="sy0">*</span>j <span class="sy0">+</span> <span class="st0">" "</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="br0">}</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">""</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}

</span></pre>
<p>Kita akan membahas bentuk perulangan lain, yaitu perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span>. Setiap bentuk perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> dapat diubah menjadi bentuk perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> dengan fungsi yang sama tanpa mengubah alur program. Tetapi tergantung dari permasalahan yang akan kita pecahkan, menulis program dengan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> akan membuat alur program lebih mudah dipahami.</p>
<p>Misalnya, kita akan menghitung 1+2+3+4+5+&#8230;+100. Kita bisa ekspresikan program tersebut dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
jumlah <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="kw1">while</span> <span class="br0">(</span>i <span class="sy0">&lt;=</span> <span class="nu0">100</span><span class="br0">)</span> <span class="br0">{</span>
    jumlah <span class="sy0">+=</span> i<span class="sy0">;</span>
    i<span class="sy0">++;</span>
<span class="br0">}</span></pre>
</div>
<p>Perulangan ini dapat ditulis juga dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">jumlah <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">100</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span>
    jumlah <span class="sy0">+=</span> i</pre>
</div>
<p>Apa point-point penting yang kita lihat dari perubahan ini? Pertama mari kita lihat bentuk penggunaan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> yang umum dilakukan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">inisialisasi variabel
<span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi_variabel<span class="br0">)</span> <span class="br0">{</span>
    perintah
    update_variabel
<span class="br0">}</span></pre>
</div>
<p>Di sini perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> memiliki 3 komponen penting, yaitu inisialisasi, yaitu memberikan nilai awal suatu variabel, suatu_kondisi_variabel, yaitu pengujian bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true, dan terakhir update_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasi perulangan sehingga akan selesai suatu saat, tidak berulang terus menerus.</p>
<p>Pada perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span>, ketiga komponen ini dirangkai menjadi satu dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>inisialisasi_variabel<span class="sy0">;</span> kondisi_variabel<span class="sy0">;</span> update_variabel<span class="br0">)</span>
   perintah</pre>
</div>
<p>atau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskan juga dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>inisialisasi_variabel<span class="sy0">;</span> kondisi_variabel<span class="sy0">;</span> update_variabel<span class="br0">)</span> <span class="br0">{</span>
   banyak_perintah
<span class="br0">}</span></pre>
</div>
<p>Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah, misalnya memberikan variabel dengan nilai awal tertentu, dalam bentuk <span class="geshifilter"><code class="geshifilter-java">variabel <span class="sy0">=</span> nilai_awal</code></span>.</p>
<p><span class="geshifilter"><code class="geshifilter-java">kondisi_variabel</code></span> harus berbentuk pernyataan boolean seperti <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> pada pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>. Sedangkan <span class="geshifilter"><code class="geshifilter-java">update_variabel</code></span> juga berbentuk perintah.</p>
<p><span class="geshifilter"><code class="geshifilter-java">inisialisasi_variabel</code></span>, <span class="geshifilter"><code class="geshifilter-java">kondisi_variabel</code></span>, atau <span class="geshifilter"><code class="geshifilter-java">update_variabel</code></span> dapat dikosongkan dan tidak harus selalu diisi. Bagian yang tidak diisi yang selalu digantikan dengan true, yang artinya perulangan akan terus dieksekusi tanpa henti. Untuk menghentikannya, perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> harus diberikan ditengah-tengah badan perulangan.</p>
<p>Bentuk paling umum dari perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> adalah menghitung. Biasanya perulangan ini memiliki bentuk seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>variabel <span class="sy0">=</span> nilai_minimum<span class="sy0">;</span> variabel <span class="sy0">&lt;=</span> nilai_maksimum<span class="sy0">;</span> variabel<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
    perintah
<span class="br0">}</span></pre>
</div>
<p>Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1, yang artinya perulangan akan dimulai dengan <span class="geshifilter"><code class="geshifilter-java">nilai_minimum</code></span>, diakhiri dengan <span class="geshifilter"><code class="geshifilter-java">nilai_maksimum</code></span> dengan jeda 1.</p>
<p>Contoh, jika kita ingin berhitung 2,5,8,11,14,17, atau dengan kata lain, mulai dari 2 hingga 17 dengan jeda 3, kita bisa mengekspresikan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">2</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">17</span><span class="sy0">;</span> i <span class="sy0">+=</span> <span class="nu0">3</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p>Untuk menghitung mundur, kita bisa menggunakan perintah seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">20</span><span class="sy0">;</span> i <span class="sy0">&gt;=</span> <span class="nu0">0</span><span class="sy0">;</span> i<span class="sy0">--</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p>Atau jika kita ingin menghitung maju dan mundur pada saat yang bersamaan, misalnya i dari 1 hingga 10 dan j dari 10 hingga 1, kita bisa ekspresikan dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span>i <span class="sy0">=</span> <span class="nu0">1</span>, j <span class="sy0">=</span> <span class="nu0">10</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span>, j<span class="sy0">--</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i <span class="sy0">+</span> <span class="st0">" "</span> <span class="sy0">+</span> j<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p><strong>Catatan penting!</strong> Variabel yang akan digunakan, dalam contoh di atas i dan j, adalah variabel yang harus dideklarasikan sebelumnya. Java adalah bahasa pemrograman ketat, yang artinya semua harus didefinisikan dengan jelas sebelum digunakan. Untuk banyak kasus, deklarasi variabel dan perulangannya bisa dilakukan serentak pada bagian inisialisasi variabel. Misalnya</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>i<span class="br0">)</span>
<span class="br0">}</span></pre>
</div>
<p>Perhatikan ada imbuhan <span class="geshifilter"><code class="geshifilter-java"><span class="kw4">int</span></code></span> di depan inisialisasi variabel i, yang merupakan deklarasi variabel <span class="geshifilter"><code class="geshifilter-java">i</code></span> dengan tipe data <span class="geshifilter"><code class="geshifilter-java"><span class="kw4">int</span></code></span> sekaligus menginisialisasi nilainya dengan 1.</p>
<p><strong>Perulangan for bertingkat</strong></p>
<p>Seperti pada perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>, perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> pun dapat dilakukan bertingkat, artinya perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span> di dalam perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span>.</p>
<p>Kita ambil contoh sederhana misalnya membuat tabel perkalian seperti</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"> <span class="nu0">1</span>   <span class="nu0">2</span>   <span class="nu0">3</span>   <span class="nu0">4</span>   <span class="nu0">5</span>   <span class="nu0">6</span>   <span class="nu0">7</span>   <span class="nu0">8</span>   <span class="nu0">9</span>  <span class="nu0">10</span>  <span class="nu0">11</span>  <span class="nu0">12</span>
 <span class="nu0">2</span>   <span class="nu0">4</span>   <span class="nu0">6</span>   <span class="nu0">8</span>  <span class="nu0">10</span>  <span class="nu0">12</span>  <span class="nu0">14</span>  <span class="nu0">16</span>  <span class="nu0">18</span>  <span class="nu0">20</span>  <span class="nu0">22</span>  <span class="nu0">24</span>
 <span class="nu0">3</span>   <span class="nu0">6</span>   <span class="nu0">9</span>  <span class="nu0">12</span>  <span class="nu0">15</span>  <span class="nu0">18</span>  <span class="nu0">21</span>  <span class="nu0">24</span>  <span class="nu0">27</span>  <span class="nu0">30</span>  <span class="nu0">33</span>  <span class="nu0">36</span>
 <span class="nu0">4</span>   <span class="nu0">8</span>  <span class="nu0">12</span>  <span class="nu0">16</span>  <span class="nu0">20</span>  <span class="nu0">24</span>  <span class="nu0">28</span>  <span class="nu0">32</span>  <span class="nu0">36</span>  <span class="nu0">40</span>  <span class="nu0">44</span>  <span class="nu0">48</span>
 <span class="nu0">5</span>  <span class="nu0">10</span>  <span class="nu0">15</span>  <span class="nu0">20</span>  <span class="nu0">25</span>  <span class="nu0">30</span>  <span class="nu0">35</span>  <span class="nu0">40</span>  <span class="nu0">45</span>  <span class="nu0">50</span>  <span class="nu0">55</span>  <span class="nu0">60</span>
 <span class="nu0">6</span>  <span class="nu0">12</span>  <span class="nu0">18</span>  <span class="nu0">24</span>  <span class="nu0">30</span>  <span class="nu0">36</span>  <span class="nu0">42</span>  <span class="nu0">48</span>  <span class="nu0">54</span>  <span class="nu0">60</span>  <span class="nu0">66</span>  <span class="nu0">72</span>
 <span class="nu0">7</span>  <span class="nu0">14</span>  <span class="nu0">21</span>  <span class="nu0">28</span>  <span class="nu0">35</span>  <span class="nu0">42</span>  <span class="nu0">49</span>  <span class="nu0">56</span>  <span class="nu0">63</span>  <span class="nu0">70</span>  <span class="nu0">77</span>  <span class="nu0">84</span>
 <span class="nu0">8</span>  <span class="nu0">16</span>  <span class="nu0">24</span>  <span class="nu0">32</span>  <span class="nu0">40</span>  <span class="nu0">48</span>  <span class="nu0">56</span>  <span class="nu0">64</span>  <span class="nu0">72</span>  <span class="nu0">80</span>  <span class="nu0">88</span>  <span class="nu0">96</span>
 <span class="nu0">9</span>  <span class="nu0">18</span>  <span class="nu0">27</span>  <span class="nu0">36</span>  <span class="nu0">45</span>  <span class="nu0">54</span>  <span class="nu0">63</span>  <span class="nu0">72</span>  <span class="nu0">81</span>  <span class="nu0">90</span>  <span class="nu0">99</span> <span class="nu0">108</span>
<span class="nu0">10</span>  <span class="nu0">20</span>  <span class="nu0">30</span>  <span class="nu0">40</span>  <span class="nu0">50</span>  <span class="nu0">60</span>  <span class="nu0">70</span>  <span class="nu0">80</span>  <span class="nu0">90</span> <span class="nu0">100</span> <span class="nu0">110</span> <span class="nu0">120</span>
<span class="nu0">11</span>  <span class="nu0">22</span>  <span class="nu0">33</span>  <span class="nu0">44</span>  <span class="nu0">55</span>  <span class="nu0">66</span>  <span class="nu0">77</span>  <span class="nu0">88</span>  <span class="nu0">99</span> <span class="nu0">110</span> <span class="nu0">121</span> <span class="nu0">132</span>
<span class="nu0">12</span>  <span class="nu0">24</span>  <span class="nu0">36</span>  <span class="nu0">48</span>  <span class="nu0">60</span>  <span class="nu0">72</span>  <span class="nu0">84</span>  <span class="nu0">96</span> <span class="nu0">108</span> <span class="nu0">120</span> <span class="nu0">132</span> <span class="nu0">144</span></pre>
</div>
<p>Program untuk membuat tabel perkalian tersebut bisa diekspresikan dengan algoritma pseudocode sebagai berikut</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">untuk setiap baris i <span class="sy0">=</span> <span class="nu0">1</span>,<span class="nu0">2</span>,3...,<span class="nu0">12</span>
    cetak perkalian i dengan <span class="nu0">1</span>,<span class="nu0">2</span>,3..12
    cetak baris baru</pre>
</div>
<p>Kalau kita jabarkan lebih lanjut, perintah kedua juga merupakan perulangan dari 1 hingga 12, sehingga algoritma di atas bisa kita tulis sebagai</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">untuk setiap baris i <span class="sy0">=</span> <span class="nu0">1</span>,<span class="nu0">2</span>,3...,<span class="nu0">12</span>
    untuk setiap kolom j <span class="sy0">=</span> <span class="nu0">1</span>,<span class="nu0">2</span>,3...,<span class="nu0">12</span>
        cetak i<span class="sy0">*</span>j
    cetak baris baru</pre>
</div>
<p>Kita bisa terjemahkan ke dalam bahasa Java sebagai</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> i <span class="sy0">&lt;=</span> <span class="nu0">12</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>  j <span class="sy0">&lt;=</span> <span class="nu0">12</span><span class="sy0">;</span> j<span class="sy0">++</span><span class="br0">)</span> <span class="br0">{</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span>i<span class="sy0">*</span>j <span class="sy0">+</span> <span class="st0">" "</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="br0">}</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">""</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/perulangan-for/feed/</wfw:commentRss>
		</item>
		<item>
		<title>while dan do &#8230; while</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/while-dan-do-while/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/while-dan-do-while/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:31:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Struktur Kontrol JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=762</guid>
		<description><![CDATA[Pernyataan while
Pernyataan while telah diperkenalkan pada bagian sebelumnya. Perulangan while memiliki bentuk

while (suatu_kondisi)
    perintah

perintah bisa juga berupa blok yang berisi kumpulan perintah-perintah di antara { dan }. perintah ini disebut juga dengan inti perulangan. Inti perulangan akan terus dieksekusi selama suatu_kondisi bernilai true. suatu_kondisi ini disebut juga penguji perulangan.
Ada beberapa hal yang [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Pernyataan while</strong></p>
<p style="text-align: justify;">Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> telah diperkenalkan pada bagian sebelumnya. Perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> memiliki bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span>
    perintah</pre>
</div>
<p style="text-align: justify;"><span class="geshifilter"><code class="geshifilter-java">perintah</code></span> bisa juga berupa blok yang berisi kumpulan perintah-perintah di antara { dan }. <span class="geshifilter"><code class="geshifilter-java">perintah</code></span> ini disebut juga dengan inti perulangan. Inti perulangan akan terus dieksekusi selama <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> bernilai <span class="geshifilter"><code class="geshifilter-java"><span class="kw2">true</span></code></span>. <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> ini disebut <span id="more-762"></span>juga penguji perulangan.</p>
<p style="text-align: justify;">Ada beberapa hal yang mungkin jadi pertanyaan. Apa yang terjadi jika <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> sudah bernilai false sejak pertama kali komputer sampai pada pernyataan ini? Dalam hal ini blok perulangan tidak akan dieksekusi sama sekali. Program akan melompat ke perintah berikutnya di luar blok perulangan.</p>
<p style="text-align: justify;">Lalu apa yang terjadi jika <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> bernilai false di tengah-tengah perulangan, apakah program keluar dari perulangan saat itu juga? Dalam hal ini, tentunya tidak. Program akan mengeksekusi semua perintah hingga akhir blok selesai. Setelah itu program akan kembali ke pernyataan while, dan setelah mengevaluasi kembali <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span>, dan jika hasilnya salah, baru program akan melompat ke perintah berikutnya di luar blok.</p>
<p style="text-align: justify;">Mari kita ubah sedikit algoritma yang kita buat di <a href="http://java.lyracc.com/artikel/java-untuk-pemula/perancangan-algoritma">bagian sebelumnya</a>. Kali ini kita akan membuat program yang menghitung rata-rata dengan cara menanyakan suatu bilangan kepada user, kemudian program akan berhenti jika masih ada data yang akan diproses.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">Inisialisasi jumlah dengan <span class="nu0">0</span>
Inisialisasi n <span class="br0">(</span>berapa data yang dimasukkan user<span class="br0">)</span> dengan <span class="nu0">0</span>
<span class="kw1">while</span> <span class="br0">(</span>masih ada data yang akan diproses<span class="br0">)</span><span class="sy0">:</span>
    Minta input dari user
    Tambah jumlah dengan input dari user
    Tambah n dengan <span class="nu0">1</span>
Bagi jumlah dengan n untuk menghitung rata<span class="sy0">-</span>rata
Cetak rata<span class="sy0">-</span>rata ke layar</pre>
</div>
<p style="text-align: justify;">Pertanyaan berikutnya, bagaimana menentukan masih ada data yang akan diproses? Cara yang paling mudah adalah melihat apakah nilai yang dimasukkan user bernilai 0. Nol di sini bukan termasuk data yang akan dijumlahkan tetapi bertugas sebagai sinyal bahwa tidak ada lagi data yang harus dimasukkan.</p>
<p style="text-align: justify;">Lalu bagaimana kita harus menguji bahwa data yang dimasukkan bernilai 0 atau bukan? (Ingat, kita baru menanyakan data di dalam blok perulangan. Pada saat komputer pertama kali menemui perulangan while, komputer tidak tahu apa-apa.) Dalam hal ini, kita akan sedikit ubah algoritma kita seperti berikut :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">Inisialisasi jumlah dengan <span class="nu0">0</span>
Inisialisasi n <span class="br0">(</span>berapa data yang dimasukkan user<span class="br0">)</span> dengan <span class="nu0">0</span>
Minta input dari user
<span class="kw1">while</span> <span class="br0">(</span>input tidak sama dengan <span class="nu0">0</span><span class="br0">)</span><span class="sy0">:</span>
    Tambah jumlah dengan input dari user
    Tambah n dengan <span class="nu0">1</span>
    Minta input dari user
Bagi jumlah dengan n untuk menghitung rata<span class="sy0">-</span>rata
Cetak rata<span class="sy0">-</span>rata ke layar</pre>
</div>
<p style="text-align: justify;">Pada dasarnya, kita tanyakan user terlebih dahulu sebelum perulangan while. Dengan cara ini, kita bisa mendapat nilai input untuk dievaluasi pada pernyataan while. Di dalam perulangan while, kita tempatkan pertanyaan untuk mendapat input dari user di akhir perulangan. Artinya, setelah kita memproses input dari user, kita akan tanyakan lagi kepada user untuk mendapatkan kondisi untuk mengevaluasi kondisi while berikutnya.</p>
<p style="text-align: justify;">Perhatikan juga bahwa ketika 0 dimasukkan, program tidak akan menghitung nilai 0 lagi. Di algoritma sebelumnya, nilai 0 akan ikut dijumlahkan dan n akan bertambah 1, padahal 0 bukan data. Nol hanya berfungsi sebagai sinyal bahwa perulangan harus selesai. Masalah ini sangat amat umum ditemui oleh programmer, karena menghitung satu demi satu ternyata tidak mudah. Untuk itu debugger diperlukan untuk melihat lebih detail apa yang dilakukan oleh komputer.</p>
<p style="text-align: justify;">Kita bisa ubah algoritma di atas menjadi program Java sebagai berikut.</p>
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">import</span> <span class="co2">java.io.*</span><span class="sy0">;</span>

<span class="kw1">public</span> <span class="kw1">class</span> RataRata <span class="br0">{</span>

	<span class="co3">/**
	 * @param args
	 */</span>
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">(</span><span class="kw3">String</span><span class="br0">[</span><span class="br0">]</span> args<span class="br0">)</span> <span class="br0">{</span>
		<span class="co1">// TODO Auto-generated method stub</span>
		<span class="kw4">double</span> jumlah <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		<span class="kw4">double</span> bilangan <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		<span class="kw4">int</span> n <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		<span class="kw3">BufferedReader</span> br <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">BufferedReader</span><span class="br0">(</span><span class="kw1">new</span> <span class="kw3">InputStreamReader</span><span class="br0">(</span><span class="kw3">System</span>.<span class="me1">in</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">String</span> strbilangan <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>

		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan bilangan pertama : "</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw1">try</span> <span class="br0">{</span>
			strbilangan <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span> <span class="kw1">catch</span> <span class="br0">(</span><span class="kw3">IOException</span> ioe<span class="br0">)</span> <span class="br0">{</span>
	        	<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Kesalahan IO, program berhenti"</span><span class="br0">)</span><span class="sy0">;</span>
	        	<span class="kw3">System</span>.<span class="me1">exit</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span>

		<span class="co1">// mengubah input menjadi double agar bisa diproses lebih lanjut</span>
		bilangan <span class="sy0">=</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strbilangan<span class="br0">)</span><span class="sy0">;</span>

		<span class="kw1">while</span> <span class="br0">(</span>bilangan <span class="sy0">!=</span> <span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span>
		    jumlah <span class="sy0">+=</span> bilangan<span class="sy0">;</span> 	<span class="co1">// sama dengan : jumlah = jumlah + bilangan</span>
		    n<span class="sy0">++;</span>			<span class="co1">// sama dengan : n = n+1</span>

		    <span class="co1">// tanya user input</span>
		    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan bilangan berikutnya (atau 0 untuk mengakhiri) : "</span><span class="br0">)</span><span class="sy0">;</span>
		    <span class="kw1">try</span> <span class="br0">{</span>
		        strbilangan <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
		    <span class="br0">}</span> <span class="kw1">catch</span> <span class="br0">(</span><span class="kw3">IOException</span> ioe<span class="br0">)</span> <span class="br0">{</span>
		        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Kesalahan IO, program berhenti"</span><span class="br0">)</span><span class="sy0">;</span>
		        <span class="kw3">System</span>.<span class="me1">exit</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span>
		    <span class="br0">}</span>

		    <span class="co1">// mengubah input menjadi double agar bisa diproses lebih lanjut</span>
		    bilangan <span class="sy0">=</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strbilangan<span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span>

		<span class="co1">// hitung rata-rata</span>
		<span class="kw4">double</span> ratarata <span class="sy0">=</span> jumlah<span class="sy0">/</span>n<span class="sy0">;</span>

		<span class="co1">// cetak hasilnya ke layar</span>
		<span class="kw1">if</span> <span class="br0">(</span>n <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Data kosong, rata-rata tidak bisa dihitung"</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Anda memasukkan "</span> <span class="sy0">+</span> n <span class="sy0">+</span> <span class="st0">" data"</span><span class="br0">)</span><span class="sy0">;</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Rata-rata bilangan yang dimasukkan adalah "</span> <span class="sy0">+</span> ratarata<span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span>
	<span class="br0">}</span></pre>
<p>Berikut hasil keluarannya :<br />
<img src="http://java.lyracc.com/sites/java.lyracc.com/files/ratarata-output.gif" alt="" /></p>
<p><strong>Pernyataan do &#8230; while</strong></p>
<p style="text-align: justify;">Kadang-kadang akan lebih mudah menulis perulangan jika penguji perulangan dilakukan di akhir badan perulangan. Dalam hal ini badan perulangan akan dieksekusi terlebih dahulu tanpa memperdulikan apakah suatu kondisi bernilai true atau false. Pengujian dilakukan di akhir setelah suatu kondisi didapat dalam eksekusi perulangan pertama kali.</p>
<p style="text-align: justify;">Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span> pada dasarnya merupakan pernyataan while terbalik, dengan bentuk.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">do</span>
    perintah
<span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Atau apabila perintah berbentuk blok kumpulan perintah-perintah, bisa juga ditulis dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">do</span> <span class="br0">{</span>
    perintah<span class="sy0">-</span>perintah
<span class="br0">}</span> <span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Perlu diingat bahwa pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span> diakhiri dengan tanda ; di akhir while.</p>
<p style="text-align: justify;">Contoh sederhana adalah program bermain game, di mana game akan menanyakan apakah user ingin bermain lagi.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">do</span> <span class="br0">{</span>
    main game
    tanya user apakah ingin main lagi
<span class="br0">}</span> <span class="kw1">while</span> <span class="br0">(</span>user menjawab ya<span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Jika suatu saat Anda harus menulis kondisi pada pernyataan while seperti ini <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span> <span class="br0">(</span>jawaban <span class="sy0">==</span> <span class="kw2">true</span><span class="br0">)</span></code></span>, Anda bisa mengganti pernyataan ini menjadi <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span> <span class="br0">(</span>jawaban<span class="br0">)</span></code></span>. Menguji apakah <span class="geshifilter"><code class="geshifilter-java">jawaban</code></span> sama dengan true sama artinya dengan melihat apakah <span class="geshifilter"><code class="geshifilter-java">jawaban</code></span> berisi &#8220;true&#8221;.</p>
<p style="text-align: justify;">Demikian juga dengan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span> <span class="br0">(</span>jawaban <span class="sy0">==</span> <span class="kw2">false</span><span class="br0">)</span></code></span>, bisa diganti dengan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span> <span class="br0">(</span><span class="sy0">!</span>jawaban<span class="br0">)</span></code></span>. Seperti dijelaskan pada bab tentang operator boolean, operator ! membalik isi dari boolean, misalnya dari true menjadi false atau sebaliknya. Dengan menuliskan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span> <span class="br0">(</span><span class="sy0">!</span>jawaban<span class="br0">)</span></code></span> berarti sama dengan menguji apakah <span class="geshifilter"><code class="geshifilter-java">jawaban</code></span> berisi false.</p>
<p style="text-align: justify;">Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span> memberikan keleluasaan kepada Anda untuk berekspresi dengan lebih lugas. Sebenarnya, untuk memecahkan suatu masalah dengan perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span> juga bisa diekspresikan dengan perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>, demikian juga sebaliknya.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">do</span>
   perintah
<span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p>bisa dituliskan dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">perintah
<span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span>
   perintah</pre>
</div>
<p>Demikian juga dengan</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span>
   perintah</pre>
</div>
<p>bisa juga dituliskan dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span> <span class="br0">{</span>
    <span class="kw1">do</span> <span class="br0">{</span>
        perintah
    <span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p>tanpa merubah aliran program sama sekali.</p>
<p><strong>Pernyataan break dan continue</strong></p>
<p style="text-align: justify;">Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> dan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span> menguji kondisi di awal atau di akhir badan perulangan. Pengujian bisa juga dilakukan di tengah-tengah badan perulangan, kemudian memerintahkan program untuk keluar dari badan perulangan saat itu juga. Caranya dengan menggunakan perintah</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">break<span class="sy0">&lt;</span>code<span class="sy0">&gt;</span>, sehingga program seperti

<span class="sy0">&lt;</span>code<span class="sy0">&gt;</span>while <span class="br0">(</span>suatu_kondisi<span class="br0">)</span>
    perintah</pre>
</div>
<p>bisa ditulis dalam bentuk</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> <span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span>
    perintah
    <span class="kw1">if</span> <span class="br0">(</span><span class="sy0">!</span>suatu_kondisi<span class="br0">)</span>
        <span class="kw1">break</span><span class="sy0">;</span>
<span class="sy0">&lt;</span>code<span class="sy0">&gt;</span>

Apa makna dari program di atas<span class="sy0">?</span> <span class="sy0">&lt;</span>code<span class="sy0">&gt;</span>while <span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span></pre>
</div>
<p style="text-align: justify;">artinya memerintahkan program untuk melakukan perulangan selamanya, karena true tidak akan berubah. Di tengah-tengah program, kita uji apakah <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> bernilai false. Jika ya, maka perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> akan dieksekusi yang menyebabkan program keluar dari badan perulangan ke perintah berikutnya di luar badan perulangan.</p>
<p style="text-align: justify;">Kadang-kadang gaya penulisan ini lebih masuk akal ketimbang gaya penulisan baku seperti <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> atau <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span>, tapi tentu saja ini tergantung dari cara pikir masing-masing programmer dan juga masalah yang akan dipecahkan.</p>
<p style="text-align: justify;">Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> atau <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span> dapat dibuat bertingkat, misalnya membuat blok <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> dalam blok <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span> <span class="br0">{</span>
    perintah
    <span class="kw1">while</span> <span class="br0">(</span>kondisi_lain<span class="br0">)</span> <span class="br0">{</span>
        perintah_lain
        <span class="kw1">while</span> <span class="br0">(</span>kondisi_lain_lagi<span class="br0">)</span> <span class="br0">{</span>
            perintah_baru
        <span class="br0">}</span>
    <span class="br0">}</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Apabila perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> diberikan, maka program akan keluar dari perulangan yang berada persis di atasnya. Misalnya, apabila perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> diberikan setelah <span class="geshifilter"><code class="geshifilter-java">perintah_lain</code></span> maka program akan keluar dari dalam perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span> <span class="br0">(</span>kondisi_lain<span class="br0">)</span></code></span>.</p>
<p style="text-align: justify;">Perlu diingan juga apabila perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> diberikan di dalam pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span>, maka program akan keluar dari perulangan yang persis di atasnya.</p>
<p style="text-align: justify;">Selain perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">break</span></code></span> yang secara langsung menghentikan perulangan, perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">continue</span></code></span> digunakan untuk menghentikan operasi saat itu, mengabaikan perintah hingga perulangan berakhir, kemudian kembali kepada perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> lagi. Misalnya,</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span> <span class="br0">{</span>
    perintah
    <span class="kw1">continue</span><span class="sy0">;</span>
    perintah_lagi
    perintah_lain_lagi
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Perulangan akan menjalankan <span class="geshifilter"><code class="geshifilter-java">perintah</code></span>, mengabaikan <span class="geshifilter"><code class="geshifilter-java">perintah_lagi</code></span> dan <span class="geshifilter"><code class="geshifilter-java">perintah_lain_lagi</code></span>, kemudian kembali kepada pernyataan while untuk mengevaluasi apakah <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> bernilai true. Jika ya perulangan akan diteruskan. Tetapi karena ada perintah <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">continue</span></code></span>, artinya selama perulangan tersebut berjalan, <span class="geshifilter"><code class="geshifilter-java">perintah_lagi</code></span> dan <span class="geshifilter"><code class="geshifilter-java">perintah_lain_lagi</code></span> tidak akan pernah dieksekusi.</p>
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="br0">}</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/while-dan-do-while/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Perancangan Algoritma</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/perancangan-algoritma/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/perancangan-algoritma/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:14:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Struktur Kontrol JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=751</guid>
		<description><![CDATA[Komputer itu bodoh! Kenapa? Karena sebagai programmer, kita harus memberikan perintah hingga sangat detail apa yang harus dikerjakan oleh komputer. Programmer adalah orang yang bertugas untuk menerjemahkan suatu tugas menjadi instruksi detail yang dapat dimengerti oleh komputer. Komputer hanya melakukan apa yang diperintahkan baris demi baris, tetapi komputer tidak bisa berfikir bagaimana melakukan suatu tugas [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Komputer itu bodoh! Kenapa? Karena sebagai programmer, kita harus memberikan perintah hingga sangat detail apa yang harus dikerjakan oleh komputer. Programmer adalah orang yang bertugas untuk menerjemahkan suatu tugas menjadi instruksi detail yang dapat dimengerti oleh komputer. Komputer hanya melakukan apa yang diperintahkan baris demi baris, tetapi komputer tidak bisa berfikir bagaimana melakukan suatu tugas seefisien mungkin.<span id="more-751"></span></p>
<p style="text-align: justify;">Untuk itu programmer baru harus dilengkapi dengan cara berfikir dan peralatan yang memungkinkan mereka untuk sukses dalam menerjemahkan suatu tugas menjadi rangkaian perintah yang bisa dimengerti oleh komputer.</p>
<p style="text-align: justify;">Program komputer itu seperti seni yang memuat suatu ide. Seorang programmer mulai dengan suatu tugas di kepalanya, misalnya menghitung sisi miring dari segitiga siku-siku. Kemudian dia akan berfikir tentang apa yang harus dilakukan untuk menyelesaikan tugas tersebut dalam bahasa manusia. Dalam hal ini misalnya, sisi miring dapat dihitung dengan mengambil akar kuadrat dari jumlah kuadrat sisi siku-sikunya. Pemecahan masalah ini kemudian diterjemahkan ke dalam bahasa pemrograman yang berupa perintah langkah demi langkah bagaimana komputer harus menyelesaikan tugas tersebut.</p>
<p style="text-align: justify;">Perintah langkah demi langkah hingga detail ini disebut algoritma. (Secara teknis, algoritma adalah kumpulan langkah-langkah sederhana yang jelas, tidak membingungkan karena hanya ada satu cara untuk melakukan langkah sederhana tersebut, dilakukan selama kurun waktu tertentu. Kita tidak ingin program menghitung selamanya tanpa batas waktu.)</p>
<p style="text-align: justify;">Program ditulis dalam bahasa pemgrograman tertentu. Tetapi algoritma ditulis secara umum atau generic, dalam bahasa manusia, sehingga bisa diimplementasikan menggunakan bahasa pemrograman apapun. Atau dengan kata lain, algoritma mirip seperti ide di belakang program yang akan kita tulis. Tetapi ide tersebut harus jelas, dan memuat langkah demi langkah yang sederhana.</p>
<p style="text-align: justify;">Jadi darimana algoritma itu datang? Biasanya orang harus membuat algoritma itu. Dengan skill, latihan dan pengalaman, orang akan lebih mudah membuat suatu algoritma.</p>
<p style="text-align: justify;">Di bagian ini akan dibahas tentang bagaimana membuat suatu algoritma. Jadi bahasa Java akan kita tinggalkan sementara. Kita akan beralih untuk berfikir secara abstrak.</p>
<hr />
<p style="text-align: justify;">Misalnya, kita memiliki suatu tugas di kepala. Salah satu cara untuk menyelesaikan tugas itu adalah menuliskan penyelesaiannya langkah demi langkah, dan dari sana kita membuat algoritma untuk menyelesaikan masalah itu. Kemudian dari setiap langkah tersebut, kita bisa membuat langkah-langkah lain yang lebih detail, sampai kita bisa menerjemahkan langkah-langkah itu ke dalam bahasa pemrograman. Metode ini disebut penghalusan bertahap (stepwise refinement), dan sifatnya top-down atau dari atas ke bawah. Sambil kita menambah detail pada setiap langkah, kita bisa mulai menuliskan algoritma dalam bentuk pseudocode (kode palsu) yang bentuknya tidak harus persis atau mengikuti suatu bahasa pemrograman.</p>
<p style="text-align: justify;">Misalnya, kita ambil contoh untuk menghitung rata-rata dari 5 bilangan. Kita bisa menuliskan pseudocode dalam bentuk berikut :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">ambil input user untuk bilangan pertama
masukkan ke variabel x
ambil input user untuk bilangan kedua
tambahkan variabel x dengan bilangan kedua
ambil input user untuk bilangan ketiga
tambahkan variabel x dengan bilangan ketiga
ambil input user untuk bilangan keempat
tambahkan variabel x dengan bilangan keempat
ambil input user untuk bilangan kelima
tambahkan variabel x dengan bilangan kelima
bagi variabel x dengan <span class="nu0">5</span>
tampilkan hasilnya di layar</pre>
</div>
<p style="text-align: justify;">Algoritma di atas betul, tetapi terlalu banyak perulangan. Bagaimana jika bilangan yang akan dirata-ratakan ada 100? Kita bisa udah algoritma di atas dengan pseudocode yang lebih mudah dimengerti, misalnya</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> a kurang dari <span class="nu0">5</span>
    ambil input user untuk bilangan ke<span class="sy0">-</span>a
    tambahkan nilai x dengan bilangan ke<span class="sy0">-</span>a
    tambah a dengan <span class="nu0">1</span>
bagi variabel x dengan <span class="nu0">5</span>
tampilkan di layar</pre>
</div>
<p style="text-align: justify;">Sekarang, ambil input user bisa dideskripsikan lebih jauh. Kita harus memberikan pertanyaan kepada user. Dan seperti dipelajari pada bab sebelumnya, input dari user berupa String yang harus diterjemahkan ke dalam tipe data bilangan untuk bisa dikalkulasi. Pseudocode di atas dapat ditulis ulang sebagai berikut :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> a kurang dari <span class="nu0">5</span>
    beri pertanyaan kepada user untuk memasukkan bilangan ke<span class="sy0">-</span>a
    ambil input user untuk bilangan ke<span class="sy0">-</span>a
    ubah input menjadi bilangan
    tambahkan nilai x dengan bilangan ke<span class="sy0">-</span>a
    tambah a dengan <span class="nu0">1</span>
bagi variabel x dengan <span class="nu0">5</span>
tampilkan di layar</pre>
</div>
<p style="text-align: justify;">Dan juga dari pelajaran sebelumnya, untuk mengambil input user, kita bisa dihadapkan pada permasalahan IO (input output). Selain itu kita juga harus menginisialisasi pembaca dan tempat meletakkan string sementara. Untuk itu, kita harus mengubah pseudocode nya menjadi seperti ini</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">inisialisasi pembaca
inisialisasi tempat string sementara
<span class="kw1">while</span> a kurang dari <span class="nu0">5</span>
    beri pertanyaan kepada user untuk memasukkan bilangan ke<span class="sy0">-</span>a
    <span class="st0">"coba"</span> ambil input user untuk bilangan ke<span class="sy0">-</span>a
        jika ada masalah keluar dari program
    ubah input menjadi bilangan
    tambahkan nilai x dengan bilangan ke<span class="sy0">-</span>a
    tambah a dengan <span class="nu0">1</span>
bagi variabel x dengan <span class="nu0">5</span>
tampilkan di layar</pre>
</div>
<p style="text-align: justify;">Kemudian, perlu diperhatikan bahwa variabel a dan x tidak diketahui nilai awalnya oleh komputer. Bayangkan jika nilai a dan x ditentukan oleh komputer secara acak, bukan saja hasil rata-ratanya menjadi tak tentu, tetapi juga perulangannya menjadi tak menentu. Untuk itu kita harus tambahkan perintah untuk menginisialisasi a dan x dengan 0, sehingga pseudocodenya menjadi</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">inisialisasi x dengan <span class="nu0">0</span>
inisialisasi a dengan <span class="nu0">0</span>
inisialisasi pembaca
inisialisasi tempat string sementara
<span class="kw1">while</span> a kurang dari <span class="nu0">5</span>
    beri pertanyaan kepada user untuk memasukkan bilangan ke<span class="sy0">-</span>a
    <span class="st0">"coba"</span> ambil input user untuk bilangan ke<span class="sy0">-</span>a
        jika ada masalah keluar dari program
    ubah input menjadi bilangan
    tambahkan nilai x dengan bilangan ke<span class="sy0">-</span>a
    tambah a dengan <span class="nu0">1</span>
bagi variabel x dengan <span class="nu0">5</span>
tampilkan di layar</pre>
</div>
<p style="text-align: justify;">Dari sini kita bisa menerjemahkan pseudocode tersebut menjadi program Java, yaitu :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw4">double</span> x <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="kw4">int</span> a <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="kw3">BufferedReader</span> br <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">BufferedReader</span><span class="br0">(</span><span class="kw1">new</span> <span class="kw3">InputStreamReader</span><span class="br0">(</span><span class="kw3">System</span>.<span class="me1">in</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
<span class="kw3">String</span> strbilangan <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>

<span class="kw1">while</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> <span class="nu0">5</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan bilangan ke-"</span> <span class="sy0">+</span> a <span class="sy0">+</span> <span class="st0">" : "</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="kw1">try</span> <span class="br0">{</span>
        strbilangan <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="br0">}</span> <span class="kw1">catch</span> <span class="br0">(</span><span class="kw3">IOException</span> ioe<span class="br0">)</span> <span class="br0">{</span>
        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Kesalahan IO, program berhenti"</span><span class="br0">)</span><span class="sy0">;</span>
        <span class="kw3">System</span>.<span class="me1">exit</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="br0">}</span>
    x <span class="sy0">=</span> x <span class="sy0">+</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strbilangan<span class="br0">)</span><span class="sy0">;</span>
    a <span class="sy0">=</span> a <span class="sy0">+</span> <span class="nu0">1</span><span class="sy0">;</span>
<span class="br0">}</span>
x <span class="sy0">=</span> x <span class="sy0">/</span> <span class="nu0">5</span><span class="sy0">;</span>
<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Rata-rata bilangan yang dimasukkan adalah "</span> <span class="sy0">+</span> x<span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p>Jangan lupa bahwa program tersebut membutuhkan paket java.io.*, sehingga kita harus menambah</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">import</span> java.<span class="me1">io</span>.<span class="sy0">*</span></pre>
</div>
<p>di awal kelas.</p>
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">import</span> <span class="co2">java.io.*</span><span class="sy0">;</span>

<span class="kw1">public</span> <span class="kw1">class</span> HitungRataRata5Bil <span class="br0">{</span>
	<span class="co3">/**
	 * @param args
	 */</span>
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">(</span><span class="kw3">String</span><span class="br0">[</span><span class="br0">]</span> args<span class="br0">)</span> <span class="br0">{</span>
		<span class="co1">// TODO Auto-generated method stub</span>
		<span class="kw4">double</span> x <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		<span class="kw4">int</span> a <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		<span class="kw3">BufferedReader</span> br <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">BufferedReader</span><span class="br0">(</span><span class="kw1">new</span> <span class="kw3">InputStreamReader</span><span class="br0">(</span><span class="kw3">System</span>.<span class="me1">in</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">String</span> strbilangan <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
		<span class="kw1">while</span> <span class="br0">(</span>a <span class="sy0">&lt;</span> <span class="nu0">5</span><span class="br0">)</span> <span class="br0">{</span>
		    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan bilangan ke-"</span> <span class="sy0">+</span> a <span class="sy0">+</span> <span class="st0">" : "</span><span class="br0">)</span><span class="sy0">;</span>
		    <span class="kw1">try</span> <span class="br0">{</span>
		        strbilangan <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
		    <span class="br0">}</span> <span class="kw1">catch</span> <span class="br0">(</span><span class="kw3">IOException</span> ioe<span class="br0">)</span> <span class="br0">{</span>
		        <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Kesalahan IO, program berhenti"</span><span class="br0">)</span><span class="sy0">;</span>
		        <span class="kw3">System</span>.<span class="me1">exit</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span>
		    <span class="br0">}</span>
		    x <span class="sy0">=</span> x <span class="sy0">+</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strbilangan<span class="br0">)</span><span class="sy0">;</span>
		    a <span class="sy0">=</span> a <span class="sy0">+</span> <span class="nu0">1</span><span class="sy0">;</span>
		<span class="br0">}</span>
		x <span class="sy0">=</span> x <span class="sy0">/</span> <span class="nu0">5</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Rata-rata bilangan yang dimasukkan adalah "</span> <span class="sy0">+</span> x<span class="br0">)</span><span class="sy0">;</span>
	<span class="br0">}</span>
<span class="br0">}</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/perancangan-algoritma/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blok, Perulangan, dan Percabangan</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/blok-perulangan-dan-percabangan/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/blok-perulangan-dan-percabangan/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:08:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Struktur Kontrol JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=749</guid>
		<description><![CDATA[Kemampuan suatu program untuk melakukan tugas kompleks dilakukan dengan menggabungkan perintah sederhana menjadi struktur kontrol. Dalam bahasa Java, ada 6 struktur tersebut, yaitu blok, perulangan while, perulangan do &#8230; while, perulangan for, pernyataan if, dan pernyataan switch.
Masing-masing struktur ini sebetulnya merupakan pernyataan tunggal yang berdiri dengan sendirinya, tetapi di dalamnya terdiri dari satu atau lebih [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Kemampuan suatu program untuk melakukan tugas kompleks dilakukan dengan menggabungkan perintah sederhana menjadi struktur kontrol. Dalam bahasa Java, ada 6 struktur tersebut, yaitu blok, perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>, perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">do</span> &#8230; <span class="kw1">while</span></code></span>, perulangan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">for</span></code></span>, pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span>, dan pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">switch</span></code></span>.<span id="more-749"></span></p>
<p style="text-align: justify;">Masing-masing struktur ini sebetulnya merupakan pernyataan tunggal yang berdiri dengan sendirinya, tetapi di dalamnya terdiri dari satu atau lebih perintah sehingga keseluruhannya menjadi suatu struktur perintah.</p>
<p style="text-align: justify;"><strong>Blok</strong></p>
<p style="text-align: justify;">Blok adalah pernyataan sederhana yang dimulai dengan { dan diakhiri dengan }. Tujuannya untuk mengelompokkan beberapa perintah sehingga lebih dimengerti. Misalnya</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="br0">{</span>
     perintah
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Pernyataan blok biasanya terdapat dalam struktur kontrol, tetapi sebetulnya tanpa struktur kontrol pun, blok tetap berlaku. Contoh sederhana penggunaan blok ini adalah dalam subrutin main() yang kita lakukan pada contoh-contoh sebelumnya.</p>
<p style="text-align: justify;">Berikut ini adalah 2 contoh penggunaan blok.</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Hallo"</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Dunia"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span>

<span class="br0">{</span> <span class="co1">// blok ini digunakan untuk menukar isi variable x dan y</span>
    <span class="kw4">int</span> temp<span class="sy0">;</span>
    temp <span class="sy0">=</span> x<span class="sy0">;</span>
    x <span class="sy0">=</span> y<span class="sy0">;</span>
    y <span class="sy0">=</span> temp<span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Pada blok kedua, kita mendeklarasikan variable baru <span class="geshifilter"><code class="geshifilter-java">temp</code></span>. Dalam blok kedua ini, variabel apapun yang dideklarasikan tidak akan dapat diakses dari luar blok ini. Variabel ini disebut <strong>variabel lokal</strong>, karena hanya bisa diakses dari dalam blok.</p>
<p style="text-align: justify;">Ketika komputer menjalankan program ini, komputer akan mempersiapkan memori untuk menyimpan variabel yang dideklarasikan di dalam blok ini. Ketika blok ini selesai dijalankan, komputer akan melepas memori yang digunakan dalam blok ini untuk digunakan oleh bagian program lain.</p>
<p style="text-align: justify;">Konsep &#8220;scope&#8221; atau jangkauan pada konsep pemrograman, mengacu pada bisa atau tidaknya suatu variabel dilihat oleh bagian program lain. Jangkauan suatu variabel menyatakan di bagian mana variabel ini valid atau dengan kata lain bisa diakses. Jangkauan variabel dalam suatu blok terbatas hanya pada blok tersebut.</p>
<p style="text-align: justify;">Blok sendiri sebetulnya bukan merupakan struktur kontrol. Program akan berjalan seperti biasa dari atas kebawah seperti biasa. Secara umum struktur kontrol dibagi menjadi 2 bagian, yaitu : <strong>perulangan</strong> dan <strong>percabangan</strong>.</p>
<p style="text-align: justify;"><strong>Perulangan</strong></p>
<p style="text-align: justify;">Sebagai contoh untuk membahas tentang perulangan, kita lihat pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>, yang memiliki bentuk seperti</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">while</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span> <span class="br0">{</span>
   perintah
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Semantik pada pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span> tersebut adalah sebagai berikut. Ketika komputer sampai pada pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">while</span></code></span>, komputer akan melakukan perhitungan pada <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span>. Apabila <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> bernilai true, blok yang berisi perintah akan dilakukan. Setelah komputer sampai pada bagian akhir blok, komputer akan menghitung kembali <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span>. Jika masih bernilai true, maka blok tersebut akan dieksekusi, dan jika tidak, program akan melompat ke bagian program berikutnya setelah blok berakhir. Atau dengan kata lain, jika <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> bernilai false, blok perintah tidak akan dieksekusi.</p>
<p style="text-align: justify;">Berikut ini adalah contoh untuk menulis bilangan 1 hingga 5.</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw4">int</span> angka <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span> <span class="co1">// inisialisasi variabel, kita mulai dengan mengisi variabel angka dengan 1</span>

<span class="kw1">while</span> <span class="br0">(</span>angka <span class="sy0">&lt;=</span> <span class="nu0">5</span><span class="br0">)</span> <span class="br0">{</span>
     <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>angka<span class="br0">)</span><span class="sy0">;</span> <span class="co1">// cetak isi angka di layar</span>
     angka <span class="sy0">=</span> angka <span class="sy0">+</span> <span class="nu0">1</span><span class="sy0">;</span>         <span class="co1">// tambah angka dengan 1</span>
<span class="br0">}</span>

<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Selesai..."</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Variabel angka kita inisialiasi (persiapkan) dan kita isi mula-mula dengan 1. Ketika program sampai pada pernyataan while, program akan mengevaluasi apakah <span class="geshifilter"><code class="geshifilter-java">angka <span class="sy0">&lt;=</span> <span class="nu0">5</span></code></span>. Pada saat program baru dimulai, angka masih bernilai 1, sehingga pernyataan <span class="geshifilter"><code class="geshifilter-java">angka <span class="sy0">&lt;=</span> <span class="nu0">5</span></code></span> bernilai true. Dalam hal ini perintah di dalam blok akan dieksekusi, yaitu mencetak angka ke layar, kemudian menambah angka dengan 1. Sekarang angka bernilai 2.</p>
<p style="text-align: justify;">Setelah sampai pada akhir blok, program akan kembali pada awal pernyataan while. Sekarang angka bernilai 2, dan karena 2 masih kurang dari atau sama dengan 5, program akan kembali mengeksekusi perintah dalam blok. Begitu seterusnya hingga angka bernilai 6. Pada saat ini program akan berhenti melakukan perulangan dan berhenti melakukan eksekusi perintah di dalam blok tersebut, kemudian melakukan perintah berikutnya, yaitu menampilkan kata &#8220;Selesai&#8230;&#8221;.</p>
<p style="text-align: justify;"><strong>Percabangan</strong></p>
<p style="text-align: justify;">Pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span> memperintahkan komputer untuk memilih salah satu aksi yang akan dilakukan, tergantung pada suatu kondisi tertentu. Bentuknya dapat ditulis sebagai berikut</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span>
     perintah_1<span class="sy0">;</span>
<span class="kw1">else</span>
     perintah_2<span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Perintah_1 dan perintah_2 juga bisa berbentuk blok, sehingga pernyataan di atas dapat ditulis juga sebagai berikut</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>suatu_kondisi<span class="br0">)</span> <span class="br0">{</span>
     perintah_1<span class="sy0">;</span>
<span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span>
     perintah_2<span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Ketika komputer sampai pada pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">if</span></code></span>, komputer akan menghitung apakah <span class="geshifilter"><code class="geshifilter-java">suatu_kondisi</code></span> bernilai true. Jika iya, maka blok perintah berikutnya akan dieksekusi, dalam hal ini <span class="geshifilter"><code class="geshifilter-java">perintah_1</code></span>. Jika tidak, maka blok setelah pernyataan <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">else</span></code></span> akan dieksekusi, yaitu <span class="geshifilter"><code class="geshifilter-java">perintah_2</code></span>.</p>
<p style="text-align: justify;">Sebagai contoh, mari kita kembali pada contoh program untuk membalik nilai x dan y, dengan syarat x harus lebih besar dari y. Dalam hal ini, setelah program ini dieksekusi, nilai x akan selalu bernilai lebih kecil dari y, karena jika nilai x lebih besar, nilai x akan ditukar dengan nilai y.</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span>x <span class="sy0">&gt;</span> y<span class="br0">)</span> <span class="br0">{</span> <span class="co1">// jika x lebih besar dari y</span>
    <span class="co1">// blok ini digunakan untuk menukar isi variable x dan y</span>
    <span class="kw4">int</span> temp<span class="sy0">;</span>
    temp <span class="sy0">=</span> x<span class="sy0">;</span>
    x <span class="sy0">=</span> y<span class="sy0">;</span>
    y <span class="sy0">=</span> temp<span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Contoh berikut adalah program untuk menentukan apakah suatu bilangan merupakan bilangan genap atau bilangan ganjil. Dengan menggunakan operator %, yaitu sisa pembagian, kita dapat menentukan apabila sisa pembagian suatu bilangan dengan 2 adalah 0, maka bilangan tersebut merupakan bilangan genap. Jika tidak, maka bilangan tersebut adalah bilangan ganjil.</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">if</span> <span class="br0">(</span><span class="br0">(</span>x <span class="sy0">%</span> <span class="nu0">2</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>x <span class="sy0">+</span> <span class="st0">" adalah bilangan genap"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span>
    <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span>x <span class="sy0">+</span> <span class="st0">" adalah bilangan ganjil"</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Kita akan bahas tentang struktur kontrol di bagian berikutnya. Semoga bagian ini yang merupakan bagian pendahuluan tentang struktur kontrol dapat dimengerti sehingga kita bisa mempelajari konsep yang lebih kompleks lagi.</p>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/blok-perulangan-dan-percabangan/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mengubah String ke int dan double</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/mengubah-string-ke-int-dan-double/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/mengubah-string-ke-int-dan-double/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:00:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Contoh2 Sederhana Program JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=744</guid>
		<description><![CDATA[Kita dapat mengubah tipe data String, misalnya hasil input dari konsol atau dari hasil bacaan file, ke tipe data bilangan untuk pengolahan lebih lanjut.
Sebagai contoh, kita akan membuat program untuk menghitung nilai investasi setelah n tahun. Input yang diminta dari user adalah :

Nama
Investasi awal (Rp)
Bunga (%)
Periode (tahun)

Dengan menggunakan teknik yang sama pada contoh sebelumnya, kita [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Kita dapat mengubah tipe data String, misalnya hasil input dari konsol atau dari hasil bacaan file, ke tipe data bilangan untuk pengolahan lebih lanjut.</p>
<p style="text-align: justify;">Sebagai contoh, kita akan membuat program untuk menghitung nilai investasi setelah n tahun. Input yang diminta dari user adalah :<span id="more-744"></span></p>
<ul>
<li>Nama</li>
<li>Investasi awal (Rp)</li>
<li>Bunga (%)</li>
<li>Periode (tahun)</li>
</ul>
<p style="text-align: justify;">Dengan menggunakan teknik yang sama pada <a href="http://java.lyracc.com/artikel/java-untuk-pemula/intermezzo-membaca-input-dari-user">contoh sebelumnya</a>, kita bisa mengambil input tersebut menggunakan kelas <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">BufferedReader</span></code></span> seperti berikut.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">nama <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
strawal <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
strbunga <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
strperiode <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Tetapi karena keluaran dari <span class="geshifilter"><code class="geshifilter-java">readLine<span class="br0">(</span><span class="br0">)</span></code></span> bertipe String, kita harus mengubahnya menjadi bentuk bilangan agar dapat diproses lebih lanjut.</p>
<p style="text-align: justify;">Untuk mengubah String menjadi int, kita dapat menggunakan kelas Java <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">Integer</span></code></span> yang di dalamnya memiliki fungsi <span class="geshifilter"><code class="geshifilter-java">parseInt<span class="br0">(</span>str<span class="br0">)</span></code></span>. Fungsi ini dapat dipanggil dengan:</p>
<div class="geshifilter" style="text-align: justify;">
<pre class="java geshifilter-java" style="font-family: monospace;">periode <span class="sy0">=</span> <span class="kw3">Integer</span>.<span class="me1">parseInt</span><span class="br0">(</span>strperiode<span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Sedangkan untuk mengubah String menjadi double, kita menggunakan kelas Java <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">Double</span></code></span> yang di dalamnya memiliki fungsi <span class="geshifilter"><code class="geshifilter-java">parseDouble<span class="br0">(</span>str<span class="br0">)</span></code></span>. Fungsi ini dapat dipanggil dengan:</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">awal<span class="sy0">=</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strawal<span class="br0">)</span><span class="sy0">;</span>
bunga <span class="sy0">=</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strbunga<span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Setelah semua variabel didapat dan diubah, kita baru bisa untuk memulai perhitungan. Untuk menghitung bunga bank setelah <strong>n</strong> tahun, kita bisa menggunakan rumus berikut :<br />
akhir = awal * (1 + bunga)<sup>periode</sup></p>
<p>Dalam Java, rumus tersebut bisa dituliskan dengan ekspresi berikut</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">akhir <span class="sy0">=</span> awal <span class="sy0">*</span> <span class="kw3">Math</span>.<span class="me1">pow</span><span class="br0">(</span><span class="nu0">1</span> <span class="sy0">+</span> bunga,periode<span class="br0">)</span><span class="sy0">;

</span><span class="kw1">import</span> <span class="co2">java.io.*</span><span class="sy0">;</span>

<span class="kw1">public</span> <span class="kw1">class</span> HitungInvestasiNPeriode <span class="br0">{</span>
	<span class="co3">/**
	 * @param args
	 */</span>
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">(</span><span class="kw3">String</span><span class="br0">[</span><span class="br0">]</span> args<span class="br0">)</span> <span class="br0">{</span>
		<span class="co1">// TODO Auto-generated method stub</span>
		<span class="co1">// buat objek baru untuk mengambil input</span>
		<span class="kw3">BufferedReader</span> br <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">BufferedReader</span><span class="br0">(</span><span class="kw1">new</span> <span class="kw3">InputStreamReader</span><span class="br0">(</span><span class="kw3">System</span>.<span class="me1">in</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="co1">// tempat di mana input dari user akan diletakkan</span>
		<span class="kw3">String</span> nama <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
		<span class="kw3">String</span> strawal <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
		<span class="kw3">String</span> strbunga <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
		<span class="kw3">String</span> strperiode <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
		<span class="kw1">try</span> <span class="br0">{</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan nama Anda : "</span><span class="br0">)</span><span class="sy0">;</span>
			nama <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan jumlah awal investasi (Rp) : "</span><span class="br0">)</span><span class="sy0">;</span>
			strawal <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan bunga (mis 0.1 = 10%) : "</span><span class="br0">)</span><span class="sy0">;</span>
			strbunga <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan periode (tahun) : "</span><span class="br0">)</span><span class="sy0">;</span>
			strperiode <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span><span class="kw3">IOException</span> ioe<span class="br0">)</span> <span class="br0">{</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Kesalahan IO pada saat menanyakan nama Anda"</span><span class="br0">)</span><span class="sy0">;</span>
			<span class="kw3">System</span>.<span class="me1">exit</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span>
		<span class="co1">// deklarasi variabel tipe bilangan</span>
		<span class="kw4">double</span> awal<span class="sy0">;</span>
		<span class="kw4">double</span> bunga<span class="sy0">;</span>
		<span class="kw4">int</span> periode<span class="sy0">;</span>
		<span class="kw4">double</span> akhir<span class="sy0">;</span>
		<span class="co1">// mengubah input dari Sting ke tipe data bilangan</span>
		periode <span class="sy0">=</span> <span class="kw3">Integer</span>.<span class="me1">parseInt</span><span class="br0">(</span>strperiode<span class="br0">)</span><span class="sy0">;</span>
		awal <span class="sy0">=</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strawal<span class="br0">)</span><span class="sy0">;</span>
		bunga <span class="sy0">=</span> <span class="kw3">Double</span>.<span class="me1">parseDouble</span><span class="br0">(</span>strbunga<span class="br0">)</span><span class="sy0">;</span>
		<span class="co1">// menghitung hasil investasi selama n periode</span>
		akhir <span class="sy0">=</span> awal <span class="sy0">*</span> <span class="kw3">Math</span>.<span class="me1">pow</span><span class="br0">(</span><span class="nu0">1</span><span class="sy0">+</span>bunga, periode<span class="br0">)</span><span class="sy0">;</span>
		<span class="co1">// tampilkan hasil perhitungan di layar</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Terima kasih, "</span> <span class="sy0">+</span> nama<span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Hasil investasi Anda setelah "</span> <span class="sy0">+</span> periode <span class="sy0">+</span> <span class="st0">" tahun "</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"adalah Rp. "</span> <span class="sy0">+</span> akhir<span class="br0">)</span><span class="sy0">;</span>
	<span class="br0">}</span>
<span class="br0">}

</span>Berikut ini adalah hasil keluarannya :

<img src="http://java.lyracc.com/sites/java.lyracc.com/files/hitunginvestasinperiode-output.gif" alt="" /></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/mengubah-string-ke-int-dan-double/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Membaca Input dari User</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/membaca-input-dari-user/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/membaca-input-dari-user/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 02:57:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Contoh2 Sederhana Program JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=741</guid>
		<description><![CDATA[Membaca String yang diketik oleh user di konsol
Kita membutuhkan kelas yang beberapa kelas, yaitu BufferedReader, InputStreamReader, dan System.in (lawan dari System.out yang kita gunakan untuk menampilkan pesan di layar).
Dua kelas pertama terdapat dalam package yang dinamakan java.io. Untuk itu, kita harus menambah satu baris perintah

import java.io.*

yang berarti mengimport semua kelas dalam paket java.io (tanda * [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Membaca String yang diketik oleh user di konsol</strong></p>
<p style="text-align: justify;">Kita membutuhkan kelas yang beberapa kelas, yaitu <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">BufferedReader</span></code></span>, <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">InputStreamReader</span></code></span>, dan <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">System</span>.<span class="me1">in</span></code></span> (lawan dari System.out yang kita gunakan untuk menampilkan pesan di layar).<span id="more-741"></span></p>
<p style="text-align: justify;">Dua kelas pertama terdapat dalam package yang dinamakan java.io. Untuk itu, kita harus menambah satu baris perintah</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">import</span> java.<span class="me1">io</span>.<span class="sy0">*</span></pre>
</div>
<p style="text-align: justify;">yang berarti mengimport semua kelas dalam paket java.io (tanda * berarti semua).</p>
<p style="text-align: justify;">Kemudian kita harus juga membuat suatu objek dari kelas BufferedReader. Kelas BufferedReader adalah kelas abstrak yang menangani baca tulis ke suatu media.</p>
<p style="text-align: justify;">Kelas ini membutuhkan kelas lain sebagai pekerjanya, yaitu InputStreamReader. Dan InputStreamReader membutuhkan media tempat baca tulis dilakukan, yaitu System.in.</p>
<p style="text-align: justify;">Semua ini bisa dituliskan dalam satu perintah yaitu :</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw3">BufferedReader</span> br <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">BufferedReader</span><span class="br0">(</span><span class="kw1">new</span> <span class="kw3">InputStreamReader</span><span class="br0">(</span><span class="kw3">System</span>.<span class="me1">in</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Di sini variabel <span class="geshifilter"><code class="geshifilter-java">br</code></span> merupakan objek yang merupakan jelmaan dari kelas <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">BufferedReader</span></code></span>.</p>
<p style="text-align: justify;">Untuk memerintahkan Java mengambil input dari user, kita gunakan fungsi <span class="geshifilter"><code class="geshifilter-java">readline<span class="br0">(</span><span class="br0">)</span></code></span> yang terdapat pada kelas <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">BufferedReader</span></code></span>, dalam hal ini terealisasi pada objek <strong><span class="geshifilter"><code class="geshifilter-java">br</code></span></strong>.</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">nama <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></pre>
</div>
<p style="text-align: justify;">Karena kita berhubungan langsung dengan sistem IO (input-output) komputer yang harus diasumsikan tidak pasti (misalnya ada masalah pada sistem keyboard, atau komputer sedang bekerja berat sehingga input dari user tidak bisa diambil), kita harus menempatkan fungsi <span class="geshifilter"><code class="geshifilter-java">readLine<span class="br0">(</span><span class="br0">)</span></code></span> pada klausa</p>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">try</span> <span class="br0">{</span>
...
<span class="br0">}</span> <span class="kw1">catch</span> <span class="br0">(</span><span class="kw3">IOException</span> ioe<span class="br0">)</span> <span class="br0">{</span>
...
<span class="br0">}</span></pre>
</div>
<p style="text-align: justify;">Perintah di dalam <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">try</span> <span class="br0">{</span> &#8230; <span class="br0">}</span></code></span> adalah perintah yang kita ingin jalankan pada situasi yang &#8220;mungkin&#8221; tidak berhasil.</p>
<p style="text-align: justify;">Parameter pada catch, yaitu <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">IOException</span> ioe</code></span> adalah jenis kesalahan yang ingin kita tangkap. Dalam hal ini kita ingin menangkap adanya kesalahan IO, yaitu kesalahan yang bertipe <span class="geshifilter"><code class="geshifilter-java"><span class="kw3">IOException</span></code></span>.</p>
<p style="text-align: justify;">Perintah di dalam <span class="geshifilter"><code class="geshifilter-java"><span class="kw1">catch</span> <span class="br0">{</span> &#8230; <span class="br0">}</span></code></span> adalah perintah yang akan dilakukan apabila kesalahan ditangkap. Jika tidak ada kesalahan IO yang ditemukan, maka bagian ini akan dilewatkan (tidak dijalankan).</p>
<p>Mari kita lihat program akhir untuk mengambil input dari user.</p>
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">import</span> <span class="co2">java.io.*</span><span class="sy0">;</span> 

<span class="kw1">public</span> <span class="kw1">class</span> AmbilInputKonsol <span class="br0">{</span>
	<span class="co3">/**
	 * @param args
	 */</span>
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">(</span><span class="kw3">String</span><span class="br0">[</span><span class="br0">]</span> args<span class="br0">)</span> <span class="br0">{</span>
		<span class="co1">// TODO Auto-generated method stub</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">(</span><span class="st0">"Masukkan nama Anda : "</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="co1">// buat objek baru untuk mengambil input</span>
		<span class="kw3">BufferedReader</span> br <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">BufferedReader</span><span class="br0">(</span><span class="kw1">new</span> <span class="kw3">InputStreamReader</span><span class="br0">(</span><span class="kw3">System</span>.<span class="me1">in</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="co1">// tempat di mana input dari user akan diletakkan</span>
		<span class="kw3">String</span> nama <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
		<span class="kw1">try</span> <span class="br0">{</span>
			nama <span class="sy0">=</span> br.<span class="me1">readLine</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span><span class="kw3">IOException</span> ioe<span class="br0">)</span> <span class="br0">{</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Kesalahan IO pada saat menanyakan nama Anda"</span><span class="br0">)</span><span class="sy0">;</span>
			<span class="kw3">System</span>.<span class="me1">exit</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="br0">}</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Terima kasih, "</span> <span class="sy0">+</span> nama<span class="br0">)</span><span class="sy0">;</span>
	<span class="br0">}</span>
<span class="br0">}</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/membaca-input-dari-user/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Operator Pembanding, Boolean dan Kondisi</title>
		<link>http://library.stie-mce.ac.id/2009/03/13/operator-pembanding-boolean-dan-kondisi/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/13/operator-pembanding-boolean-dan-kondisi/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 02:47:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Contoh2 Sederhana Program JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=731</guid>
		<description><![CDATA[Operator kondisi (conditional operator) menghasilkan nilai true atau false tergantung dari variabelnya, dalam hal ini operasinya dilakukan pada dua operand. Operator boolean adalah operator kondisi yang kedua operandnya berupa nilai boolean (true atau false), sedangkan Operator Pembanding membandingkan 2 nilai seperti pada operasi matematika.
Catatan : Pada objek, seperti String, operasi pembanding akan membandingkan alamat memory [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Operator kondisi (conditional operator) menghasilkan nilai true atau false tergantung dari variabelnya, dalam hal ini operasinya dilakukan pada dua operand. Operator boolean adalah operator kondisi yang kedua operandnya berupa nilai boolean (true atau false), sedangkan Operator Pembanding membandingkan 2 nilai seperti pada operasi matematika.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Catatan</strong></span> : Pada objek, seperti String, operasi pembanding akan <span id="more-731"></span>membandingkan alamat memory tempat objek itu disimpan, bukan membandingkan isinya. Untuk membandingkan isi String, gunakan <span class="geshifilter"><code class="geshifilter-java">equals<span class="br0">(</span><span class="br0">)</span></code></span>, <span class="geshifilter"><code class="geshifilter-java">equalsIgnoreCase<span class="br0">(</span><span class="br0">)</span></code></span>, dan <span class="geshifilter"><code class="geshifilter-java">compareTo<span class="br0">(</span><span class="br0">)</span></code></span> seperti dibahas pada bagian sebelumnya.</p>
<table border="1">
<tbody>
<tr>
<th>Simbol</th>
<th>Nama operator</th>
<th>Contoh</th>
</tr>
<tr>
<td>==</td>
<td>Sama dengan</td>
<td>b = (1 == 2);</td>
</tr>
<tr>
<td>!=</td>
<td>Tidak sama dengan</td>
<td>b = (1 == 2);</td>
</tr>
<tr>
<td>&gt;</td>
<td>Lebih besar</td>
<td>b = (1 &gt; 2);</td>
</tr>
<tr>
<td>&gt;=</td>
<td>Lebih besar atau sama dengan</td>
<td>b = (1 &gt;= 2);</td>
</tr>
<tr>
<td>&lt;</td>
<td>Lebih kecil</td>
<td>b = (1 &lt; 2);</td>
</tr>
<tr>
<td>&lt;=</td>
<td>Lebih kecil atau sama dengan</td>
<td>b = (1 &lt;= 2);</td>
</tr>
<tr>
<td>&amp;&amp;</td>
<td>Conditional AND</td>
<td>b = true &amp;&amp; false;</td>
</tr>
<tr>
<td>||</td>
<td>Conditional OR</td>
<td>b = true || false;</td>
</tr>
<tr>
<td>!</td>
<td>NOT</td>
<td>b = !true;</td>
</tr>
<tr>
<td>?:</td>
<td>Bentuk pendek dari if-then-else</td>
</tr>
</tbody>
</table>
<p><strong>Operator boolean AND</strong></p>
<p style="text-align: justify;">Operator kondisi AND menghasilkan &#8220;true&#8221; apabila kedua operandnya bernilai &#8220;true&#8221;. Jika salah satunya atau keduanya &#8220;false&#8221;, operator ini menghasilkan &#8220;false&#8221;. Berikut ini tabel kebenaran operasi AND.</p>
<table border="1">
<tbody>
<tr>
<th>Op1 atau Exp1</th>
<th>Op2 atau Exp2</th>
<th>Hasil</th>
</tr>
<tr>
<td>true</td>
<td>true</td>
<td>true</td>
</tr>
<tr>
<td>true</td>
<td>false</td>
<td>false</td>
</tr>
<tr>
<td>false</td>
<td>true</td>
<td>false</td>
</tr>
<tr>
<td>false</td>
<td>false</td>
<td>false</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Operator &amp;&amp; akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1 bernilai &#8220;true&#8221;. Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah kiri) bernilai &#8220;false&#8221;, hasilnya akan selalu &#8220;false&#8221; tidak tergantung pada isi dari Op2. <strong></strong></p>
<p><strong>Operator kondisi OR</strong></p>
<p style="text-align: justify;">Operator kondisi OR menghasilkan &#8220;true&#8221; jika salah satu operandnya bernilai &#8220;true&#8221;. Jika keduanya &#8220;false&#8221;, operator ini menghasilkan &#8220;false&#8221;. Berikut ini table kebenaran oeprasi OR.</p>
<table border="1">
<tbody>
<tr>
<th>Op1 atau Exp1</th>
<th>Op2 atau Exp2</th>
<th>Hasil</th>
</tr>
<tr>
<td>true</td>
<td>true</td>
<td>true</td>
</tr>
<tr>
<td>true</td>
<td>false</td>
<td>true</td>
</tr>
<tr>
<td>false</td>
<td>true</td>
<td>true</td>
</tr>
<tr>
<td>false</td>
<td>false</td>
<td>false</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Operator || akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1 bernilai &#8220;false&#8221;. Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah kiri) bernilai &#8220;true&#8221;, hasilnya akan selalu &#8220;true&#8221; tidak tergantung pada isi dari Op2. <strong></strong></p>
<p><strong>Operator NOT</strong></p>
<p style="text-align: justify;">Operator NOT (&#8221;!&#8221;) melakukan operasi boolean NOT pada operand atau ekspresi tunggal. Operator ini mengecek nilai boolean dari suatu operand atau expresi kemudian membalik nilainya (dari true ke false atau false ke true). Berikut ini adalah tabel kebenaran operator NOT.</p>
<table border="1">
<tbody>
<tr>
<th>Op1</th>
<th>Hasil</th>
</tr>
<tr>
<td>true</td>
<td>false</td>
</tr>
<tr>
<td>false</td>
<td>true</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Operator Ternary (?:)</strong> Java memiliki operator berkondisi lain yang disebut ternary &#8220;?:&#8221;, yang pada dasarnya merupakan bentuk pendek dari if-then-else. Secara umum</p>
<p><span class="geshifilter"><code class="geshifilter-java">kondisi <span class="sy0">?</span> jika_benar <span class="sy0">:</span> jika_salah</code></span></p>
<p style="text-align: justify;">Pada dasarnya operator &#8220;?:&#8221; akan mengevaluasi &#8220;kondisi&#8221;. Apabila kondisi bernilai &#8220;true&#8221;, operator akan mengembalikan &#8220;jika_benar&#8221;, tetapi apabila &#8220;kondisi&#8221; bernilai &#8220;false&#8221;, operator akan mengembalika &#8220;jika_salah&#8221;. Misalnya</p>
<p><span class="geshifilter"><code class="geshifilter-java">x <span class="sy0">=</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&gt;</span> <span class="nu0">2</span><span class="br0">)</span> <span class="sy0">?</span> <span class="nu0">10</span> <span class="sy0">:</span> <span class="nu0">20</span></code></span></p>
<p style="text-align: justify;">Dari contoh di atas, &#8220;x&#8221; akan memiliki nilai 20, karena ekspresi (1 &gt; 2) adalah salah (atau &#8220;false&#8221;).</p>
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">public</span> <span class="kw1">class</span> OperatorKondisi <span class="br0">{</span>
	<span class="co3">/**
	 * Contoh program menggunakan operator kondisi
	 *
	 * @param args
	 */</span>
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">(</span><span class="kw3">String</span><span class="br0">[</span><span class="br0">]</span> args<span class="br0">)</span> <span class="br0">{</span>
		<span class="co1">// TODO Auto-generated method stub</span>
		<span class="kw4">int</span> x <span class="sy0">=</span> <span class="nu0">5</span><span class="sy0">;</span>
		<span class="kw4">int</span> y <span class="sy0">=</span> <span class="nu0">10</span>, angka <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		<span class="kw4">boolean</span> bl <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span>
		<span class="kw1">if</span><span class="br0">(</span><span class="br0">(</span>x <span class="sy0">==</span> <span class="nu0">5</span><span class="br0">)</span> <span class="sy0">&amp;&amp;</span> <span class="br0">(</span>x <span class="sy0">&lt;</span> y<span class="br0">)</span><span class="br0">)</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Nilai x adalah "</span> <span class="sy0">+</span> x<span class="br0">)</span><span class="sy0">;</span>
		<span class="kw1">if</span><span class="br0">(</span><span class="br0">(</span>x <span class="sy0">==</span> y<span class="br0">)</span> <span class="sy0">||</span> <span class="br0">(</span>y <span class="sy0">&gt;</span> <span class="nu0">1</span><span class="br0">)</span><span class="br0">)</span>
			<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Nilai y lebih besar dari x"</span><span class="br0">)</span><span class="sy0">;</span>
		angka <span class="sy0">=</span> bl <span class="sy0">?</span> x <span class="sy0">:</span> y<span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Angka yang keluar adalah "</span> <span class="sy0">+</span> angka<span class="br0">)</span><span class="sy0">;</span>
	<span class="br0">}</span>
<span class="br0">}</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/13/operator-pembanding-boolean-dan-kondisi/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Operator Tunggal</title>
		<link>http://library.stie-mce.ac.id/2009/03/12/operator-tunggal/</link>
		<comments>http://library.stie-mce.ac.id/2009/03/12/operator-tunggal/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 10:12:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Contoh2 Sederhana Program JAVA]]></category>

		<guid isPermaLink="false">http://library.stie-mce.ac.id/?p=727</guid>
		<description><![CDATA[+ Operator plus; menyatakan nilai positif (setiap angka tanpa tanda ini akan dianggap sebagai positif)
- Operator minus; menyatakan nilai negatif, dapat pula digunakan untuk menegatifkan suatu bilangan
++ Operator kenaikan; menambah suatu bilangan dengan 1
&#8211; Operator penurunan; mengurangkan suatu bilangan dengan 1
! Operator lawan; membalik nilai suatu boolean
Operator tunggal hanya membutuhkan satu operan untuk melakukan operasinya. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">+ Operator plus; menyatakan nilai positif (setiap angka tanpa tanda ini akan dianggap sebagai positif)</p>
<p style="text-align: justify;">- Operator minus; menyatakan nilai negatif, dapat pula digunakan untuk menegatifkan suatu bilangan</p>
<p style="text-align: justify;">++ Operator kenaikan; menambah suatu bilangan dengan 1<span id="more-727"></span></p>
<p>&#8211; Operator penurunan; mengurangkan suatu bilangan dengan 1</p>
<p>! Operator lawan; membalik nilai suatu boolean</p>
<p style="text-align: justify;">Operator tunggal hanya membutuhkan satu operan untuk melakukan operasinya. Operator ini tidak dapat digunakan untuk variabel final, karena variabel final berupa konstanta yang tidak dapat diubah-ubah. Beberapa jenis operator tunggal diberikan pada tabel di bawah ini.</p>
<table style="height: 316px;" border="1" width="454">
<tbody>
<tr>
<td>Simbol</td>
<td>Nama operator</td>
<td>Operasi</td>
<td>Contoh</td>
</tr>
<tr>
<td>+</td>
<td>Operator plus</td>
<td>menyatakan nilai positif</td>
<td>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">angka <span class="sy0">=</span> <span class="sy0">+</span><span class="nu0">1</span><span class="sy0">;</span></pre>
</div>
</td>
</tr>
<tr>
<td>-</td>
<td>Operator minus</td>
<td>menyatakan nilai negatif, dapat pula digunakan untuk menegatifkan suatu bilangan</td>
<td>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">angka <span class="sy0">=</span> <span class="sy0">-</span><span class="nu0">1</span><span class="sy0">;</span>
angka <span class="sy0">=</span> <span class="sy0">-</span>angka<span class="sy0">;</span> <span class="co1">// sekarang angka bernilai 1</span></pre>
</div>
</td>
</tr>
<tr>
<td>++</td>
<td>Operator kenaikan</td>
<td>menambah suatu bilangan dengan 1</td>
<td>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">angka <span class="sy0">=</span> <span class="sy0">++</span>angka<span class="sy0">;</span></pre>
</div>
</td>
</tr>
<tr>
<td>&#8211;</td>
<td>Operator penurunan</td>
<td>mengurangkan suatu bilangan dengan 1</td>
<td>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">angka <span class="sy0">=</span> <span class="sy0">--</span>angka<span class="sy0">;</span></pre>
</div>
</td>
</tr>
<tr>
<td>!</td>
<td>Operator lawan</td>
<td>membalik nilai suatu boolean</td>
<td>
<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family: monospace;">ok <span class="sy0">=</span> <span class="sy0">!</span><span class="kw2">true</span><span class="sy0">;</span></pre>
</div>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Operator kenaikan dan penurunan dapat diletakkan di belakang atau di depan suatu variabel. Jika diletakkan di depan (++x atau &#8211;x), penambahan/pengurangan dilakukan sebelumnya, sedangkan apabila diletakkan di akhir (x++ atau x&#8211;) penambahan/pengurangan dilakukan setelahnya. Walau bagaimanapun pada akhirnya keduanya akan menghasilkan x = x+1 atau x = x-1.</p>
<p style="text-align: justify;">Mari kita lihat contohnya untuk membedakan lebih jelas perbedaan penempatan operator tunggal ++ dan &#8211;</p>
<pre class="java geshifilter-java" style="font-family: monospace;"><span class="kw1">public</span> <span class="kw1">class</span> OperatorTunggal <span class="br0">{</span>
	<span class="co3">/**
	 * Contoh program menggunakan operator tunggal
	 *
	 * @param args
	 */</span>
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">(</span><span class="kw3">String</span><span class="br0">[</span><span class="br0">]</span> args<span class="br0">)</span> <span class="br0">{</span>
		<span class="co1">// TODO Auto-generated method stub</span>
		<span class="kw4">int</span> x <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		<span class="kw4">int</span> y <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		y <span class="sy0">=</span> <span class="sy0">++</span>x<span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Contoh operator pada prefix (awalan)"</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"---------------------------"</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Nilai x baru : "</span> <span class="sy0">+</span> x<span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Nilai y = ++x : "</span> <span class="sy0">+</span> y<span class="br0">)</span><span class="sy0">;</span>
		x <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		y <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
		y <span class="sy0">=</span> x<span class="sy0">++;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"<span class="es0">\n</span>Contoh operator pada sufix (akhiran)"</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"---------------------------"</span><span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Nilai x baru :"</span> <span class="sy0">+</span> x<span class="br0">)</span><span class="sy0">;</span>
		<span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">(</span><span class="st0">"Nilai y = x++ :"</span> <span class="sy0">+</span> y<span class="br0">)</span><span class="sy0">;</span>
	<span class="br0">}</span>
<span class="br0">}</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://library.stie-mce.ac.id/2009/03/12/operator-tunggal/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
