<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>free-free doank</title>
	<atom:link href="http://ygfree.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ygfree.wordpress.com</link>
	<description>Just free learning</description>
	<lastBuildDate>Sun, 09 Mar 2008 23:34:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ygfree.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>free-free doank</title>
		<link>http://ygfree.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ygfree.wordpress.com/osd.xml" title="free-free doank" />
	<atom:link rel='hub' href='http://ygfree.wordpress.com/?pushpress=hub'/>
		<item>
		<title>op</title>
		<link>http://ygfree.wordpress.com/2008/02/29/op/</link>
		<comments>http://ygfree.wordpress.com/2008/02/29/op/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 01:48:23 +0000</pubDate>
		<dc:creator>ygfree</dc:creator>
				<category><![CDATA[operating system]]></category>

		<guid isPermaLink="false">http://ygfree.wordpress.com/?p=5</guid>
		<description><![CDATA[Operating System Ahmad Dicky Dzulkarnain 7607040018 Teknik komputer Politeknik Elektronika Negeri Surabaya  Bab 1. Pendahuluan Bab ini berisi tiga pokok pembahasan. Pertama, membahas hal-hal umum seputar sistem operasi.Selanjutnya, menerangkan konsep perangkat keras sebuah komputer. Sebagai penutup akandiungkapkan, pokok konsep dari sebuah sistem operasi.1.1. Sistem OperasiSistem operasi merupakan sebuah penghubung antara pengguna dari komputer dengan perangkat [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ygfree.wordpress.com&amp;blog=2980539&amp;post=5&amp;subd=ygfree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div align="center" class="Section1"><b><span style="font-size:20.5pt;font-family:Arial;">Operating System</span></b></div>
<p align="center" style="text-align:center;margin:0;" class="MsoNormal"><span><font face="Times New Roman">Ahmad Dicky Dzulkarnain</font></span></p>
<p align="center" style="text-align:center;margin:0;" class="MsoNormal"><span><font face="Times New Roman">7607040018</font></span></p>
<p align="center" style="text-align:center;margin:0;" class="MsoNormal"><span><font face="Times New Roman">Teknik komputer</font></span></p>
<div class="Section1"><font face="Times New Roman"><span>Politeknik Elektronika Negeri Surabaya</span><b><span style="font-size:20.5pt;font-family:Arial;"></span></b></font><b><span style="font-size:20.5pt;font-family:Arial;"> </span></b></div>
<p><span style="font-size:10pt;font-family:'Times New Roman';"><br /><b><span style="font-family:Arial;">Bab 1. Pendahuluan</span></b></p>
<p></span><b><span style="font-family:Arial;"></span></b><span style="font-size:10pt;"><font face="Times New Roman">Bab ini berisi tiga pokok pembahasan. Pertama, membahas hal-hal umum seputar sistem operasi.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Selanjutnya, menerangkan konsep perangkat keras sebuah komputer. Sebagai penutup akan</font></span><span style="font-size:10pt;"><font face="Times New Roman">diungkapkan, pokok konsep dari sebuah sistem operasi.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.1. Sistem Operasi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi merupakan sebuah penghubung antara pengguna dari komputer dengan perangkat keras</font></span><span style="font-size:10pt;"><font face="Times New Roman">komputer. Sebelum ada sistem operasi, orang hanya mengunakan komputer dengan menggunakan sinyal</font></span><span style="font-size:10pt;"><font face="Times New Roman">analog dan sinyal digital. Seiring dengan berkembangnya pengetahuan dan teknologi, pada saat ini</font></span><span style="font-size:10pt;"><font face="Times New Roman">terdapat berbagai sistem operasi dengan keunggulan masing-masing. Untuk lebih memahami sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">operasi maka sebaiknya perlu diketahui terlebih dahulu beberapa konsep dasar mengenai sistem operasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">itu sendiri.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pengertian sistem operasi secara umum ialah pengelola seluruh sumber-daya yang terdapat pada sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">komputer dan menyediakan sekumpulan layanan (<i>system calls</i>) ke pemakai sehingga memudahkan dan</font></span><span style="font-size:10pt;"><font face="Times New Roman">menyamankan penggunaan serta pemanfaatan sumber-daya sistem komputer.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.1.1. Fungsi Dasar</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem komputer pada dasarnya terdiri dari empat komponen utama, yaitu perangkat-keras, program</font></span><span style="font-size:10pt;"><font face="Times New Roman">aplikasi, sistem-operasi, dan para pengguna. Sistem operasi berfungsi untuk mengatur dan mengawasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">penggunaan perangkat keras oleh berbagai program aplikasi serta para pengguna.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi berfungsi ibarat pemerintah dalam suatu negara, dalam arti membuat kondisi komputer</font></span><span style="font-size:10pt;"><font face="Times New Roman">agar dapat menjalankan program secara benar. Untuk menghindari konflik yang terjadi pada saat</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengguna menggunakan sumber-daya yang sama, sistem operasi mengatur pengguna mana yang dapat</font></span><span style="font-size:10pt;"><font face="Times New Roman">mengakses suatu sumber-daya. Sistem operasi juga sering disebut <i>resource allocator</i>. Satu lagi fungsi</font></span><span style="font-size:10pt;"><font face="Times New Roman">penting sistem operasi ialah sebagai program pengendali yang bertujuan untuk menghindari kekeliruan</font></span><span style="font-size:10pt;"><font face="Times New Roman">(<i>error</i>) dan penggunaan komputer yang tidak perlu.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.1.2. Tujuan Mempelajari Sistem Operasi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Tujuan mempelajari sistem operasi agar dapat merancang sendiri serta dapat memodifikasi sistem yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">telah ada sesuai dengan kebutuhan kita, agar dapat memilih alternatif sistem operasi, memaksimalkan</font></span><span style="font-size:10pt;"><font face="Times New Roman">penggunaan sistem operasi dan agar konsep dan teknik sistem operasi dapat diterapkan pada</font></span><span style="font-size:10pt;"><font face="Times New Roman">aplikasi-aplikasi lain.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.1.3. Sasaran Sistem Operasi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi mempunyai tiga sasaran utama yaitu <i>kenyamanan </i>&#8211; membuat penggunaan komputer</font></span><span style="font-size:10pt;"><font face="Times New Roman">menjadi lebih nyaman, <i>efisien </i>&#8211; penggunaan sumber-daya sistem komputer secara efisien, serta mampu</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">berevolusi </span></i><span style="font-size:10pt;">&#8211; sistem operasi harus dibangun sehingga memungkinkan dan memudahkan pengembangan,</span></font><span style="font-size:10pt;"><font face="Times New Roman">pengujian serta pengajuan sistem-sistem yang baru.</font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><i><span style="font-size:10pt;"></span></i><b><span style="font-family:Arial;">1.1.4. Sejarah Sistem Operasi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Menurut Tanenbaum, sistem operasi mengalami perkembangan yang sangat pesat, yang dapat dibagi</font></span><span style="font-size:10pt;"><font face="Times New Roman">kedalam empat generasi:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Generasi Pertama (1945-1955)</span></font><span style="font-size:10pt;"><font face="Times New Roman">Generasi pertama merupakan awal perkembangan sistem komputasi elektronik sebagai pengganti</font></span><span style="font-size:10pt;"><font face="Times New Roman">sistem komputasi mekanik, hal itu disebabkan kecepatan manusia untuk menghitung terbatas dan</font></span><span style="font-size:10pt;"><font face="Times New Roman">manusia sangat mudah untuk membuat kecerobohan, kekeliruan bahkan kesalahan. Pada generasi ini</font></span><span style="font-size:10pt;"><font face="Times New Roman">belum ada sistem operasi, maka sistem komputer diberi instruksi yang harus dikerjakan secara</font></span><span style="font-size:10pt;"><font face="Times New Roman">langsung.</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Generasi Kedua (1955-1965)</span></font><span style="font-size:10pt;"><font face="Times New Roman">Generasi kedua memperkenalkan <i>Batch Processing System</i>, yaitu Job yang dikerjakan dalam satu</font></span><span style="font-size:10pt;"><font face="Times New Roman">rangkaian, lalu dieksekusi secara berurutan.Pada generasi ini sistem komputer belum dilengkapi</font></span><span style="font-size:10pt;"><font face="Times New Roman">sistem operasi, tetapi beberapa fungsi sistem operasi telah ada, contohnya fungsi sistem operasi ialah</font></span><span style="font-size:10pt;"><font face="Times New Roman">FMS dan IBSYS.</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Generasi Ketiga (1965-1980)</span></font><span style="font-size:10pt;"><font face="Times New Roman">Pada generasi ini perkembangan sistem operasi dikembangkan untuk melayani banyak pemakai</font></span><span style="font-size:10pt;"><font face="Times New Roman">sekaligus, dimana para pemakai interaktif berkomunikasi lewat terminal secara on-line ke komputer,</font></span><span style="font-size:10pt;"><font face="Times New Roman">maka sistem operasi menjadi <i>multi-user </i>(di gunakan banyak pengguna sekali gus) dan</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">multi-programming </span></i><span style="font-size:10pt;">(melayani banyak program sekali gus).</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Generasi Keempat (Pasca 1980an)</span></font><span style="font-size:10pt;"><font face="Times New Roman">Dewasa ini, sistem operasi dipergunakan untuk jaringan komputer dimana pemakai menyadari</font></span><span style="font-size:10pt;"><font face="Times New Roman">keberadaan komputer-komputer yang saling terhubung satu sama lainnya. Pada masa ini para</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengguna juga telah dinyamankan dengan <i>Graphical User Interface </i>yaitu antar-muka komputer yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">berbasis grafis yang sangat nyaman, pada masa ini juga dimulai era komputasi tersebar dimana</font></span><span style="font-size:10pt;"><font face="Times New Roman">komputasi-komputasi tidak lagi berpusat di satu titik, tetapi dipecah dibanyak komputer sehingga</font></span><span style="font-size:10pt;"><font face="Times New Roman">tercapai kinerja yang lebih baik.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.1.5. Layanan Sistem Operasi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sebuah sistem operasi yang baik menurut Tanenbaum harus memiliki layanan sebagai berikut:</font></span><span style="font-size:10pt;"><font face="Times New Roman">pembuatan program, eksekusi program, pengaksesan <i>I/O Device</i>, pengaksesan terkendali terhadap berkas</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengaksesan sistem, deteksi dan pemberian tanggapan pada kesalahan, serta akunting.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pembuatan program yaitu sistem operasi menyediakan fasilitas dan layanan untuk membantu para</font></span><span style="font-size:10pt;"><font face="Times New Roman">pemrogram untuk menulis program; Eksekusi Program yang berarti Instruksi-instruksi dan data-data</font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><span style="font-size:10pt;"><font face="Times New Roman">harus dimuat ke memori utama, perangkat-parangkat masukan/ keluaran dan berkas harus di-inisialisasi,</font></span><span style="font-size:10pt;"><font face="Times New Roman">serta sumber-daya yang ada harus disiapkan, semua itu harus di tangani oleh sistem operasi;</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pengaksesan <i>I/O Device</i>, artinya Sistem Operasi harus mengambil alih sejumlah instruksi yang rumit dan</font></span><span style="font-size:10pt;"><font face="Times New Roman">sinyal kendali menjengkelkan agar pemrogram dapat berfikir sederhana dan perangkat pun dapat</font></span><span style="font-size:10pt;"><font face="Times New Roman">beroperasi; Pengaksesan terkendali terhadap berkas yang artinya disediakannya mekanisme proteksi</font></span><span style="font-size:10pt;"><font face="Times New Roman">terhadap berkas untuk mengendalikan pengaksesan terhadap berkas; Pengaksesan sistem artinya pada</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengaksesan digunakan bersama (<i>shared system</i>); Fungsi pengaksesan harus menyediakan proteksi</font></span><span style="font-size:10pt;"><font face="Times New Roman">terhadap sejumlah sumber-daya dan data dari pemakai tak terdistorsi serta menyelesaikan konflik-konflik</font></span><span style="font-size:10pt;"><font face="Times New Roman">dalam perebutan sumber-daya; Deteksi dan Pemberian tanggapan pada kesalahan, yaitu jika muncul</font></span><span style="font-size:10pt;"><font face="Times New Roman">permasalahan muncul pada sistem komputer maka sistem operasi harus memberikan tanggapan yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">menjelaskan kesalahan yang terjadi serta dampaknya terhadap aplikasi yang sedang berjalan; dan</font></span><span style="font-size:10pt;"><font face="Times New Roman">Akunting yang artinya Sistem Operasi yang bagus mengumpulkan data statistik penggunaan beragam</font></span><span style="font-size:10pt;"><font face="Times New Roman">sumber-daya dan memonitor parameter kinerja.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2. Struktur Komputer</span></b><span style="font-size:10pt;"><font face="Times New Roman">Struktur sebuah sistem komputer dapat dibagi menjadi:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Sistem Operasi Komputer.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Struktur I/O.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Struktur Penyimpanan.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Storage Hierarchy</span></i><span style="font-size:10pt;">.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Proteksi Perangkat Keras.</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.2.1. Sistem Operasi Komputer</span></b><span style="font-size:10pt;"><font face="Times New Roman">Dewasa ini sistem komputer multiguna terdiri dari CPU (<i>Central Processing Unit</i>); serta sejumlah <i>device</i></font></span><font face="Times New Roman"><i><span style="font-size:10pt;">controller </span></i><span style="font-size:10pt;">yang dihubungkan melalui <i>bus </i>yang menyediakan akses ke memori. Setiap <i>device controller</i></span></font><span style="font-size:10pt;"><font face="Times New Roman">bertugas mengatur perangkat yang tertentu (contohnya <i>disk drive</i>, <i>audio device</i>, dan <i>video display</i>). CPU</font></span><span style="font-size:10pt;"><font face="Times New Roman">dan <i>device controller </i>dapat dijalankan secara bersamaan, namun demikian diperlukan mekanisme</font></span><span style="font-size:10pt;"><font face="Times New Roman">sinkronisasi untuk mengatur akses ke memori.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pada saat pertama kali dijalankan atau pada saat <i>boot</i>, terdapat sebuah program awal yang mesti</font></span><span style="font-size:10pt;"><font face="Times New Roman">dijalankan. Program awal ini disebut program <i>bootstrap</i>. Program ini berisi semua aspek dari sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">komputer, mulai dari register CPU, <i>device controller</i>, sampai isi memori.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Interupsi merupakan bagian penting dari sistem arsitektur komputer. Setiap sistem komputer memiliki</font></span><span style="font-size:10pt;"><font face="Times New Roman">mekanisme yang berbeda. Interupsi bisa terjadi apabila perangkat keras (<i>hardware</i>) atau perangkat lunak</font></span><span style="font-size:10pt;"><font face="Times New Roman">(<i>software</i>) minta &#8220;dilayani&#8221; oleh prosesor. Apabila terjadi interupsi maka prosesor menghentikan proses</font></span><span style="font-size:10pt;"><font face="Times New Roman">yang sedang dikerjakannya, kemudian beralih mengerjakan <i>service routine </i>untuk melayani interupsi</font></span><span style="font-size:10pt;"><font face="Times New Roman">tersebut. Setelah selesai mengerjakan <i>service routine </i>maka prosesor kembali melanjutkan proses yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">tertunda.</font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><i><span style="font-size:10pt;"></span></i><b><span style="font-family:Arial;">1.2.2. Struktur I/O</span></b><span style="font-size:10pt;"><font face="Times New Roman">Bagian ini akan membahas struktur I/O, interupsi I/O, dan DMA, serta perbedaan dalam penanganan</font></span><span style="font-size:10pt;"><font face="Times New Roman">interupsi.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.2.1. Interupsi I/O</span></b><span style="font-size:10pt;"><font face="Times New Roman">Untuk memulai operasi I/O, CPU me-<i>load </i>register yang bersesuaian ke <i>device controller</i>. Sebaliknya</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">device controller </span></i><span style="font-size:10pt;">memeriksa isi register untuk kemudian menentukan operasi apa yang harus dilakukan.</span></font><span style="font-size:10pt;"><font face="Times New Roman">Pada saat operasi I/O dijalankan ada dua kemungkinan, yaitu <i>synchronous I/O </i>dan <i>asynchronous I/O</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pada <i>synchronous I/O</i>, kendali dikembalikan ke proses pengguna setelah proses I/O selesai dikerjakan.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sedangkan pada <i>asynchronous I/O</i>, kendali dikembalikan ke proses pengguna tanpa menunggu proses</font></span><span style="font-size:10pt;"><font face="Times New Roman">I/O selesai. Sehingga proses I/O dan proses pengguna dapat dijalankan secara bersamaan.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.2.2. Struktur DMA</span></b><font face="Times New Roman"><i><span style="font-size:10pt;">Direct Memory Access </span></i><span style="font-size:10pt;">(DMA) suatu metoda penanganan I/O dimana <i>device controller </i>langsung</span></font><span style="font-size:10pt;"><font face="Times New Roman">berhubungan dengan memori tanpa campur tangan CPU. Setelah men-set <i>buffers</i>, <i>pointers</i>, dan <i>counters</i></font></span><span style="font-size:10pt;"><font face="Times New Roman">untuk perangkat I/O, <i>device controller </i>mentransfer blok data langsung ke penyimpanan tanpa campur</font></span><span style="font-size:10pt;"><font face="Times New Roman">tangan CPU. DMA digunakan untuk perangkat I/O dengan kecepatan tinggi. Hanya terdapat satu</font></span><span style="font-size:10pt;"><font face="Times New Roman">interupsi setiap blok, berbeda dengan perangkat yang mempunyai kecepatan rendah dimana interupsi</font></span><span style="font-size:10pt;"><font face="Times New Roman">terjadi untuk setiap <i>byte </i>(<i>word</i>).</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.3. Struktur Penyimpanan</span></b><span style="font-size:10pt;"><font face="Times New Roman">Program komputer harus berada di memori utama (biasanya RAM) untuk dapat dijalankan. Memori</font></span><span style="font-size:10pt;"><font face="Times New Roman">utama adalah satu-satunya tempat penyimpanan yang dapat diakses secara langsung oleh prosesor.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Idealnya program dan data secara keseluruhan dapat disimpan dalam memori utama secara permanen.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Namun demikian hal ini tidak mungkin karena:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Ukuran memori utama relatif kecil untuk dapat menyimpan data dan program secara keseluruhan.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Memori utama bersifat <i>volatile</i>, tidak bisa menyimpan secara permanen, apabila komputer dimatikan</span></font><span style="font-size:10pt;"><font face="Times New Roman">maka data yang tersimpan di memori utama akan hilang.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.3.1. Memori Utama</span></b><span style="font-size:10pt;"><font face="Times New Roman">Hanya memori utama dan register merupakan tempat penyimpanan yang dapat diakses secara langsung</font></span><span style="font-size:10pt;"><font face="Times New Roman">oleh prosesor. Oleh karena itu instruksi dan data yang akan dieksekusi harus disimpan di memori utama</font></span><span style="font-size:10pt;"><font face="Times New Roman">atau register.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Untuk mempermudah akses perangkat I/O ke memori, pada arsitektur komputer menyediakan fasilitas</font></span><span style="font-size:10pt;"><font face="Times New Roman">pemetaan memori ke I/O. Dalam hal ini sejumlah alamat di memori dipetakan dengan <i>device register</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Membaca dan menulis pada alamat memori ini menyebabkan data ditransfer dari dan ke <i>device register</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Metode ini cocok untuk perangkat dengan waktu respon yang cepat seperti <i>video controller</i>.</font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><span style="font-size:10pt;"><font face="Times New Roman">Register yang terdapat dalam prosesor dapat diakses dalam waktu 1 <i>clock cycle</i>. Hal ini menyebabkan</font></span><span style="font-size:10pt;"><font face="Times New Roman">register merupakan media penyimpanan dengan akses paling cepat bandingkan dengan memori utama</font></span><span style="font-size:10pt;"><font face="Times New Roman">yang membutuhkan waktu relatif lama. Untuk mengatasi perbedaan kecepatan, dibuatlah suatu</font></span><span style="font-size:10pt;"><font face="Times New Roman">penyangga (<i>buffer</i>) penyimpanan yang disebut <i>cache</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.3.2. <i>Magnetic Disk</i></span></b><font face="Times New Roman"><i><span style="font-size:10pt;">Magnetic Disk </span></i><span style="font-size:10pt;">berperan sebagai <i>secondary storage </i>pada sistem komputer modern. <i>Magnetic Disk</i></span></font><span style="font-size:10pt;"><font face="Times New Roman">disusun dari piringan-piringan seperti CD. Kedua permukaan piringan diselimuti oleh bahan-bahan</font></span><span style="font-size:10pt;"><font face="Times New Roman">magnetik. Permukaan dari piringan dibagi-bagi menjadi <i>track </i>yang memutar, yang kemudian dibagi lagi</font></span><span style="font-size:10pt;"><font face="Times New Roman">menjadi beberapa sektor.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-size:14.5pt;font-family:Arial;">1.2.4. <i>Storage Hierarchy</i></span></b><span style="font-size:10pt;"><font face="Times New Roman">Dalam <i>storage hierarchy structure</i>, data yang sama bisa tampil dalam level berbeda dari sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">penyimpanan. Sebagai contoh integer A berlokasi pada bekas B yang ditambahkan 1, dengan asumsi</font></span><span style="font-size:10pt;"><font face="Times New Roman">bekas B terletak pada <i>magnetic disk</i>. Operasi penambahan diproses dengan pertama kali mengeluarkan</font></span><span style="font-size:10pt;"><font face="Times New Roman">operasi I/O untuk menduplikat disk block pada A yang terletak pada memori utama Operasi ini diikuti</font></span><span style="font-size:10pt;"><font face="Times New Roman">dengan kemungkinan penduplikatan A ke dalam <i>cache </i>dan penduplikatan A ke dalam internal register.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sehingga penduplikatan A terjadi di beberapa tempat. Pertama terjadi di internal register dimana nilai A</font></span><span style="font-size:10pt;"><font face="Times New Roman">berbeda dengan yang di sistem penyimpanan. Dan nilai di A akan kembali sama ketika nilai baru ditulis</font></span><span style="font-size:10pt;"><font face="Times New Roman">ulang ke <i>magnetic disk</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pada kondisi multi prosesor, situasi akan menjadi lebih rumit. Hal ini disebabkan masing-masing</font></span><span style="font-size:10pt;"><font face="Times New Roman">prosesor mempunyai <i>local cache</i>. Dalam kondisi seperti ini hasil duplikat dari A mungkin hanya ada di</font></span><span style="font-size:10pt;"><font face="Times New Roman">beberapa <i>cache</i>. Karena CPU (register-register) dapat dijalankan secara bersamaan maka kita harus</font></span><span style="font-size:10pt;"><font face="Times New Roman">memastikan perubahan nilai A pada satu <i>cache </i>akan mengubah nilai A pada semua <i>cache </i>yang ada. Hal</font></span><span style="font-size:10pt;"><font face="Times New Roman">ini disebut sebagai <i>Cache Coherency</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.5. Proteksi Perangkat Keras</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem komputer terdahulu berjenis <i>programmer-operated systems</i>. Ketika komputer dioperasikan dalam</font></span><span style="font-size:10pt;"><font face="Times New Roman">konsul mereka (pengguna) harus melengkapi sistem terlebih dahulu. Akan tetapi setelah sistem operasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">lahir maka hal tersebut diambil alih oleh sistem operasi. Sebagai contoh pada monitor yang proses I/O</font></span><span style="font-size:10pt;"><font face="Times New Roman">sudah diambil alih oleh sistem operasi, padahal dahulu hal ini dilakukan oleh pengguna.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Untuk meningkatkan utilisasi sistem, sistem operasi akan membagi sistem sumber daya sepanjang</font></span><span style="font-size:10pt;"><font face="Times New Roman">program secara simultan. Pengertian <i>spooling </i>adalah suatu program dapat dikerjakan walau pun I/O</font></span><span style="font-size:10pt;"><font face="Times New Roman">masih mengerjakan proses lainnya dan disk secara bersamaan menggunakan data untuk banyak proses.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pengertian <i>multi programming </i>adalah kegiatan menjalankan beberapa program pada memori pada satu</font></span><span style="font-size:10pt;"><font face="Times New Roman">waktu.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pembagian ini memang menguntungkan sebab banyak proses dapat berjalan pada satu waktu akan tetapi</font></span><span style="font-size:10pt;"><font face="Times New Roman">mengakibatkan masalah-masalah baru. Ketika tidak di <i>sharing </i>maka jika terjadi kesalahan hanyalah</font></span><span style="font-size:10pt;"><font face="Times New Roman">akan membuat kesalahan program. Tapi jika di-<i>sharing </i>jika terjadi kesalahan pada satu proses/ program</font></span><span style="font-size:10pt;"><font face="Times New Roman">akan berpengaruh pada proses lainnya.</font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><span style="font-size:10pt;"><font face="Times New Roman">Sehingga diperlukan pelindung (proteksi). Tanpa proteksi jika terjadi kesalahan maka hanya satu saja</font></span><span style="font-size:10pt;"><font face="Times New Roman">program yang dapat dijalankan atau seluruh output pasti diragukan.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Banyak kesalahan pemprograman dideteksi oleh perangkat keras. Kesalahan ini biasanya ditangani oleh</font></span><span style="font-size:10pt;"><font face="Times New Roman">sistem operasi. Jika terjadi kesalahan program, perangkat keras akan meneruskan kepada sistem operasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">dan sistem operasi akan menginterupsi dan mengakhirinya. Pesan kesalahan disampaikan, dan memori</font></span><span style="font-size:10pt;"><font face="Times New Roman">dari program akan dibuang. Tapi memori yang terbuang biasanya tersimpan pada disk agar <i>programmer</i></font></span><span style="font-size:10pt;"><font face="Times New Roman">bisa membetulkan kesalahan dan menjalankan program ulang.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.5.1. Operasi Dual Mode</span></b><span style="font-size:10pt;"><font face="Times New Roman">Untuk memastikan operasi berjalan baik kita harus melindungi sistem operasi, program, dan data dari</font></span><span style="font-size:10pt;"><font face="Times New Roman">program-program yang salah. Proteksi ini memerlukan <i>share resources</i>. Hal ini bisa dilakukan sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">operasi dengan cara menyediakan pendukung perangkat keras yang mengizinkan kita membedakan</font></span><span style="font-size:10pt;"><font face="Times New Roman">mode pengeksekusian program.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Mode yang kita butuhkan ada dua mode operasi yaitu:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Mode Monitor.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Mode Pengguna.</span></font><span style="font-size:10pt;"><font face="Times New Roman">Pada perangkat keras akan ada bit atau Bit Mode yang berguna untuk membedakan mode apa yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">sedang digunakan dan apa yang sedang dikerjakan. Jika Mode Monitor maka akan benilai 0, dan jika</font></span><span style="font-size:10pt;"><font face="Times New Roman">Mode Pengguna maka akan bernilai 1.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pada saat <i>boot time</i>, perangkat keras bekerja pada mode monitor dan setelah sistem operasi di-<i>load </i>maka</font></span><span style="font-size:10pt;"><font face="Times New Roman">akan mulai masuk ke mode pengguna. Ketika terjadi <i>trap </i>atau interupsi, perangkat keras akan</font></span><span style="font-size:10pt;"><font face="Times New Roman">men-<i>switch </i>lagi keadaan dari mode pengguna menjadi mode monitor (terjadi perubahan <i>state </i>menjadi bit</font></span><span style="font-size:10pt;"><font face="Times New Roman">0). Dan akan kembali menjadi mode pengguna jikalau sistem operasi mengambil alih proses dan kontrol</font></span><span style="font-size:10pt;"><font face="Times New Roman">komputer (<i>state </i>akan berubah menjadi bit 1).</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.5.2. Proteksi I/O</span></b><span style="font-size:10pt;"><font face="Times New Roman">Pengguna bisa mengacaukan sistem operasi dengan melakukan instruksi I/O ilegal dengan mengakses</font></span><span style="font-size:10pt;"><font face="Times New Roman">lokasi memori untuk sistem operasi atau dengan cara hendak melepaskan diri dari prosesor. Untuk</font></span><span style="font-size:10pt;"><font face="Times New Roman">mencegahnya kita menganggap semua instruksi I/O sebagai <i>privilidge instruction </i>sehingga mereka tidak</font></span><span style="font-size:10pt;"><font face="Times New Roman">bisa mengerjakan instruksi I/O secara langsung ke memori tapi harus lewat sistem operasi terlebih</font></span><span style="font-size:10pt;"><font face="Times New Roman">dahulu. Proteksi I/O dikatakan selesai jika pengguna dapat dipastikan tidak akan menyentuh mode</font></span><span style="font-size:10pt;"><font face="Times New Roman">monitor. Jika hal ini terjadi proteksi I/O dapat dikompromikan.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.2.5.3. Proteksi Memori</span></b><span style="font-size:10pt;"><font face="Times New Roman">Salah satu proteksi perangkat keras ialah dengan proteksi memori yaitu dengan pembatasan penggunaan</font></span><span style="font-size:10pt;"><font face="Times New Roman">memori. Disini diperlukan beberapa istilah yaitu:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Base Register yaitu alamat memori fisik awal yang dialokasikan/ boleh digunakan oleh pengguna.</span></font><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Limit Register yaitu nilai batas dari alamat memori fisik awal yang dialokasikan/boleh digunakan oleh</span></font><span style="font-size:10pt;"><font face="Times New Roman">pengguna.</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Proteksi Perangkat Keras.</span></font><span style="font-size:10pt;"><font face="Times New Roman">Sebagai contoh sebuah pengguna dibatasi mempunyai base register 300040 dan mempunyai limit</font></span><span style="font-size:10pt;"><font face="Times New Roman">register 120900 maka pengguna hanya diperbolehkan menggunakan alamat memori fisik antara 300040</font></span><span style="font-size:10pt;"><font face="Times New Roman">hingga 420940 saja.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.3. Struktur Sistem Operasi</span></b><b><span style="font-family:Arial;"></span></b><b><span style="font-family:Arial;">1.3.1. Komponen-komponen Sistem</span></b><span style="font-size:10pt;"><font face="Times New Roman">Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut Avi</font></span><span style="font-size:10pt;"><font face="Times New Roman">Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai</font></span><span style="font-size:10pt;"><font face="Times New Roman">komponen sebagai berikut:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Managemen Proses.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Managemen Memori Utama.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Managemen <i>Secondary-Storage</i>.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Managemen Sistem I/O.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Managemen Berkas.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Sistem Proteksi.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Jaringan.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Command-Interpreter system</span></i><span style="font-size:10pt;">.</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.3.2. Managemen Proses</span></b><span style="font-size:10pt;"><font face="Times New Roman">Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa</font></span><span style="font-size:10pt;"><font face="Times New Roman">sumber daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat berupa <i>CPU time</i>, memori,</font></span><span style="font-size:10pt;"><font face="Times New Roman">berkas-berkas, dan perangkat-perangkat I/O.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses</font></span><span style="font-size:10pt;"><font face="Times New Roman">seperti:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Pembuatan dan penghapusan proses pengguna dan sistem proses.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Menunda atau melanjutkan proses.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Menyediakan mekanisme untuk proses sinkronisasi.</span></font><i><span style="font-size:10pt;"><font face="Times New Roman">7</font></span></i><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Menyediakan mekanisme untuk proses komunikasi.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Menyediakan mekanisme untuk penanganan <i>deadlock</i>.</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.3.3. Managemen Memori Utama</span></b><span style="font-size:10pt;"><font face="Times New Roman">Memori utama atau lebih dikenal sebagai memori adalah sebuah <i>array </i>yang besar dari <i>word </i>atau <i>byte</i>,</font></span><span style="font-size:10pt;"><font face="Times New Roman">yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap <i>word </i>atau <i>byte </i>mempunyai alamat</font></span><span style="font-size:10pt;"><font face="Times New Roman">tersendiri. Memori Utama berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh</font></span><span style="font-size:10pt;"><font face="Times New Roman">CPU atau perangkat I/O. Memori utama termasuk tempat penyimpanan data yang sementara (<i>volatile</i>),</font></span><span style="font-size:10pt;"><font face="Times New Roman">artinya data dapat hilang begitu sistem dimatikan.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen memori</font></span><span style="font-size:10pt;"><font face="Times New Roman">seperti:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Menjaga <i>track </i>dari memori yang sedang digunakan dan siapa yang menggunakannya.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Memilih program yang akan di-<i>load </i>ke memori.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.3.4. Managemen <i>Secondary-Storage</i></span></b><span style="font-size:10pt;"><font face="Times New Roman">Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena</font></span><span style="font-size:10pt;"><font face="Times New Roman">itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan <i>secondary-storage </i>yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">bersifat permanen dan mampu menampung banyak data. Contoh dari <i>secondary-storage </i>adalah <i>harddisk</i>,</font></span><span style="font-size:10pt;"><font face="Times New Roman">disket, dll.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan <i>disk-management</i></font></span><span style="font-size:10pt;"><font face="Times New Roman">seperti: <i>free-space management</i>, alokasi penyimpanan, penjadualan disk.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.3.5. Managemen Sistem I/O</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sering disebut <i>device manager</i>. Menyediakan &#8220;<i>device driver</i>&#8221; yang umum sehingga operasi I/O dapat</font></span><span style="font-size:10pt;"><font face="Times New Roman">seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan operasi yang sama</font></span><span style="font-size:10pt;"><font face="Times New Roman">untuk membaca berkas pada <i>hard-disk</i>, CD-ROM dan <i>floppy disk</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Komponen Sistem Operasi untuk sistem I/O:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Buffer</span></i><span style="font-size:10pt;">: menampung sementara data dari/ ke perangkat I/O.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Spooling</span></i><span style="font-size:10pt;">: melakukan penjadualan pemakaian I/O sistem supaya lebih efisien (antrian dsb.).</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Menyediakan <i>driver </i>untuk dapat melakukan operasi &#8220;rinci&#8221; untuk perangkat keras I/O tertentu.</span></font><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><i><span style="font-size:10pt;"></span></i><b><span style="font-family:Arial;">1.3.6. Managemen Berkas</span></b><span style="font-size:10pt;"><font face="Times New Roman">Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">bertanggung-jawab:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Pembuatan dan penghapusan berkas.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Pembuatan dan penghapusan direktori.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Mendukung manipulasi berkas dan direktori.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Memetakan berkas ke <i>secondary storage</i>.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Mem-<i>backup </i>berkas ke media penyimpanan yang permanen (<i>non-volatile</i>).</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.3.7. Sistem Proteksi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengguna ke sistem sumber daya. Mekanisme proteksi harus:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">membedakan antara penggunaan yang sudah diberi izin dan yang belum.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">specify the controls to be imposed</span></i><span style="font-size:10pt;">.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">provide a means of enforcement</span></i><span style="font-size:10pt;">.</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.3.8. Jaringan</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau <i>clock</i>. Tiap prosesor</font></span><span style="font-size:10pt;"><font face="Times New Roman">mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem. Akses tersebut</font></span><span style="font-size:10pt;"><font face="Times New Roman">menyebabkan:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Computation speed-up</span></i><span style="font-size:10pt;">.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Increased data availability</span></i><span style="font-size:10pt;">.</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Enhanced reliability</span></i><span style="font-size:10pt;">.</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.3.9. <i>Command-Interpreter System</i></span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem Operasi menunggu instruksi dari pengguna (<i>command driven</i>). Program yang membaca instruksi</font></span><span style="font-size:10pt;"><font face="Times New Roman">dan mengartikan <i>control statements </i>umumnya disebut: <i>control-card interpreter</i>, <i>command-line</i></font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><font face="Times New Roman"><i><span style="font-size:10pt;">interpreter</span></i><span style="font-size:10pt;">, dan <i>UNIX shell</i>. <i>Command-Interpreter System </i>sangat bervariasi dari satu sistem operasi ke</span></font><span style="font-size:10pt;"><font face="Times New Roman">sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi <i>I/O devices </i>yang ada. Contohnya:</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">CLI</span></i><span style="font-size:10pt;">, <i>Windows</i>, <i>Pen-based </i>(<i>touch</i>), dan lain-lain.</span></font><font face="Times New Roman"><span style="font-size:10pt;"></span></font><b><span style="font-family:Arial;">1.3.10. Layanan Sistem Operasi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Eksekusi program adalah kemampuan sistem untuk &#8220;<i>load</i>&#8221; program ke memori dan menjalankan</font></span><span style="font-size:10pt;"><font face="Times New Roman">program. Operasi I/O: pengguna tidak dapat secara langsung mengakses sumber daya perangkat keras,</font></span><span style="font-size:10pt;"><font face="Times New Roman">sistem operasi harus menyediakan mekanisme untuk melakukan operasi I/O atas nama pengguna. Sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">manipulasi berkas dalah kemampuan program untuk operasi pada berkas (membaca, menulis, membuat,</font></span><span style="font-size:10pt;"><font face="Times New Roman">and menghapus berkas). Komunikasi adalah pertukaran data/ informasi antar dua atau lebih proses yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">berada pada satu komputer (atau lebih). Deteksi <i>error </i>adalah menjaga kestabilan sistem dengan</font></span><span style="font-size:10pt;"><font face="Times New Roman">mendeteksi &#8220;<i>error</i>&#8220;, perangkat keras mau pun operasi.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Efesisensi penggunaan sistem:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Resource allocator </span></i><span style="font-size:10pt;">adalah mengalokasikan sumber-daya ke beberapa pengguna atau <i>job </i>yang jalan</span></font><span style="font-size:10pt;"><font face="Times New Roman">pada saat yang bersamaan.</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Proteksi menjamin akses ke sistem sumber daya dikendalikan (pengguna dikontrol aksesnya ke</span></font><span style="font-size:10pt;"><font face="Times New Roman">sistem).</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Accounting </span></i><span style="font-size:10pt;">adalah merekam kegiatan pengguna, jatah pemakaian sumber daya (keadilan atau</span></font><span style="font-size:10pt;"><font face="Times New Roman">kebijaksanaan).</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.3.11. <i>System Call</i>s</span></b><font face="Times New Roman"><i><span style="font-size:10pt;">System call </span></i><span style="font-size:10pt;">menyediakan interface antara program (program pengguna yang berjalan) dan bagian OS.</span></font><font face="Times New Roman"><i><span style="font-size:10pt;">System call </span></i><span style="font-size:10pt;">menjadi jembatan antara proses dan sistem operasi. <i>System call </i>ditulis dalam bahasa</span></font><font face="Times New Roman"><i><span style="font-size:10pt;">assembly </span></i><span style="font-size:10pt;">atau bahasa tingkat tinggi yang dapat mengendalikan mesin (C). Contoh: UNIX menyediakan</span></font><font face="Times New Roman"><i><span style="font-size:10pt;">system call</span></i><span style="font-size:10pt;">: <i>read, write </i>=&gt; operasi I/O untuk berkas.</span></font><span style="font-size:10pt;"><font face="Times New Roman">Sering pengguna program harus memberikan data (parameter) ke OS yang akan dipanggil. Contoh pada</font></span><span style="font-size:10pt;"><font face="Times New Roman">UNIX: read(buffer, max_size, file_id);</font></span><span style="font-size:10pt;"><font face="Times New Roman">Tiga cara memberikan parameter dari program ke sistem operasi:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Melalui registers (sumber daya di CPU).</span></font><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh <i>pointer</i></span></font><span style="font-size:10pt;"><font face="Times New Roman">yang disimpan di register.</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Push </span></i><span style="font-size:10pt;">(<i>store</i>) melalui &#8220;<i>stack</i>&#8221; pada memori dan OS mengambilnya melalui <i>pop </i>pada <i>stack </i>tsb</span></font><font face="Times New Roman"><span style="font-size:10pt;">.</span></font><b><span style="font-family:Arial;">1.3.12. Mesin Virtual</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sebuah mesin virtual (<i>Virtual Machine</i>) menggunakan misalkan terdapat sistem program =&gt; control</font></span><span style="font-size:10pt;"><font face="Times New Roman">program yang mengatur pemakaian sumber daya perangkat keras. Control program = trap <i>System call </i>+</font></span><span style="font-size:10pt;"><font face="Times New Roman">akses ke perangkat keras. Control program memberikan fasilitas ke proses pengguna. Mendapatkan jatah</font></span><span style="font-size:10pt;"><font face="Times New Roman">CPU dan memori. Menyediakan <i>interface </i>&#8220;identik&#8221; dengan apa yang disediakan oleh perangkat keras =&gt;</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">sharing devices </span></i><span style="font-size:10pt;">untuk berbagai proses.</span></font><span style="font-size:10pt;"><font face="Times New Roman">Mesin Virtual (MV) (MV) =&gt; control program yang minimal MV memberikan ilusi <i>multitasking</i>:</font></span><span style="font-size:10pt;"><font face="Times New Roman">seolah-olah terdapat prosesor dan memori ekslusif digunakan MV. MV memilah fungsi <i>multitasking </i>dan</font></span><span style="font-size:10pt;"><font face="Times New Roman">implementasi <i>extended machine </i>(tergantung proses pengguna) =&gt; flexible dan lebih mudah untuk</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengaturan. Jika setiap pengguna diberikan satu MV =&gt; bebas untuk menjalankan OS (kernel) yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">diinginkan pada MV tersebut. Potensi lebih dari satu OS dalam satu komputer. Contoh: IBM VM370:</font></span><span style="font-size:10pt;"><font face="Times New Roman">menyediakan MV untuk berbagai OS: CMS (interaktif), MVS, CICS, dll. Masalah: Sharing disk =&gt; OS</font></span><span style="font-size:10pt;"><font face="Times New Roman">mempunyai sistem berkas yang mungkin berbeda. IBM: virtual disk (minidisk) yang dialokasikan untuk</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengguna melalui MV.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Konsep MV menyediakan proteksi yang lengkap untuk sumberdaya sistem, dikarenakan tiap MV</font></span><span style="font-size:10pt;"><font face="Times New Roman">terpisah dari MV yang lain. Namun, hal tersebut menyebabkan tidak adanya <i>sharing </i>sumberdaya secara</font></span><span style="font-size:10pt;"><font face="Times New Roman">langsung. MV merupakan alat yang tepat untuk penelitian dan pengembangan sistem operasi. Konsep</font></span><span style="font-size:10pt;"><font face="Times New Roman">MV susah untuk diimplementasi sehubungan dengan usaha yang diperlukan untuk menyediakan</font></span><span style="font-size:10pt;"><font face="Times New Roman">duplikasi dari mesin utama.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.3.13. Perancangan Sistem dan Implementasi</span></b><span style="font-size:10pt;"><font face="Times New Roman">Target untuk pengguna: sistem operasi harus nyaman digunakan, mudah dipelajari, dapat diandalkan,</font></span><span style="font-size:10pt;"><font face="Times New Roman">aman dan cepat. Target untuk sistem: sistem operasi harus gampang dirancang, diimplementasi, dan</font></span><span style="font-size:10pt;"><font face="Times New Roman">dipelihara, sebagaimana fleksibel, <i>error</i>, dan efisien.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Mekanisme dan Kebijaksanaan:</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Mekanisme menjelaskan bagaimana melakukan sesuatu kebijaksanaan memutuskan apa yang akan</span></font><span style="font-size:10pt;"><font face="Times New Roman">dilakukan. Pemisahan kebijaksanaan dari mekanisme merupakan hal yang sangat penting; ini</font></span><span style="font-size:10pt;"><font face="Times New Roman">mengizinkan fleksibilitas yang tinggi bila kebijaksanaan akan diubah nanti.</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><span style="font-size:10pt;">Kebijaksanaan memutuskan apa yang akan dilakukan.</span></font><span style="font-size:10pt;"><font face="Times New Roman">Pemisahan kebijaksanaan dari mekanisme merupakan hal yang sangat penting; ini mengizinkan</font></span><span style="font-size:10pt;"><font face="Times New Roman">fleksibilitas yang tinggi bila kebijaksanaan akan diubah nanti.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Implementasi Sistem biasanya menggunakan bahas <i>assembly</i>, sistem operasi sekarang dapat ditulis</font></span><span style="font-size:10pt;"><font face="Times New Roman">dengan menggunakan bahasa tingkat tinggi. Kode yang ditulis dalam bahasa tingkat tinggi: dapat dibuat</font></span><span style="font-size:10pt;"><font face="Times New Roman">dengan cepat, lebih ringkas, lebih mudah dimengerti dan didebug. Sistem operasi lebih mudah</font></span><span style="font-size:10pt;"><font face="Times New Roman">dipindahkan ke perangkat keras yang lain bila ditulis dengan bahasa tingkat tinggi.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.3.14. <i>System Generation </i>(SYSGEN)</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi dirancang untuk dapat dijalankan di berbagai jenis mesin; sistemnya harus di konfigurasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">untuk tiap komputer. Program SYSGEN mendapatkan informasi mengenai konfigurasi khusus dari</font></span><span style="font-size:10pt;"><font face="Times New Roman">sistem perangkat keras.</font></span><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Booting</span></i><span style="font-size:10pt;">: memulai komputer dengan me-<i>load </i>kernel.</span></font><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><font face="Times New Roman"><span style="font-size:8pt;">• </span><i><span style="font-size:10pt;">Bootstrap program</span></i><span style="font-size:10pt;">: kode yang disimpan di code ROM yang dapat menempatkan kernel,</span></font><span style="font-size:10pt;"><font face="Times New Roman">memasukkannya kedalam memori, dan memulai eksekusinya.</font></span><span style="font-size:10pt;"><font face="Times New Roman"></font></span><b><span style="font-family:Arial;">1.4. Kesimpulan</span></b><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi telah berkembang selama lebih dari 40 tahun dengan dua tujuan utama. Pertama, sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">operasi mencoba mengatur aktivitas-aktivitas komputasi untuk memastikan pendayagunaan yang baik</font></span><span style="font-size:10pt;"><font face="Times New Roman">dari sistem komputasi tersebut. Kedua, menyediakan lingkungan yang nyaman untuk pengembangan dan</font></span><span style="font-size:10pt;"><font face="Times New Roman">jalankan dari program.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pada awalnya, sistem komputer digunakan dari depan konsul. Perangkat lunak seperti <i>assembler</i>, <i>loader</i>,</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">linker</span></i><span style="font-size:10pt;">dan <i>compiler </i>meningkatkan kenyamanan dari sistem pemrograman, tapi juga memerlukan waktu</span></font><font face="Times New Roman"><i><span style="font-size:10pt;">set-up </span></i><span style="font-size:10pt;">yang banyak. Untuk mengurangi waktu <i>set-up </i>tersebut, digunakan jasa operator dan</span></font><span style="font-size:10pt;"><font face="Times New Roman">menggabungkan tugas-tugas yang sama (sistem <i>batch</i>). Sistem <i>batch </i>mengizinkan pengurutan tugas</font></span><span style="font-size:10pt;"><font face="Times New Roman">secara otomatis dengan menggunakan sistem operasi yang resident dan memberikan peningkatan yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">cukup besar dalam utilisasi komputer. Komputer tidak perlu lagi menunggu operasi oleh pengguna. Tapi</font></span><span style="font-size:10pt;"><font face="Times New Roman">utilisasi CPU tetap saja rendah. Hal ini dikarenakan lambatnya kecepatan alat-alat untuk I/O relatif</font></span><span style="font-size:10pt;"><font face="Times New Roman">terhadap kecepatan CPU. Operasi <i>off-line </i>dari alat-alat yang lambat bertujuan untuk menggunakan</font></span><span style="font-size:10pt;"><font face="Times New Roman">beberapa sistem <i>reader-to-tape </i>dan <i>tape-to-printer </i>untuk satu CPU.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Untuk meningkatkan keseluruhan kemampuan dari sistem komputer, para developer memperkenalkan</font></span><span style="font-size:10pt;"><font face="Times New Roman">konsep <b><i>multiprogramming</i></b>. Dengan <i>multiprogramming</i>, beberapa tugas disimpan dalam memori dalam</font></span><span style="font-size:10pt;"><font face="Times New Roman">satu waktu; CPU digunakan secara bergantian sehingga menambah utilisasi CPU dan mengurangi total</font></span><span style="font-size:10pt;"><font face="Times New Roman">waktu yang dibutuhkan untuk menyelesaikan tugas-tugas tersebut. <i>Multiprogramming</i>, yang dibuat untuk</font></span><span style="font-size:10pt;"><font face="Times New Roman">meningkatkan kemampuan, juga mengizinkan <b><i>time sharing</i></b>. Sistem operasi yang bersifat <i>time-shared</i></font></span><span style="font-size:10pt;"><font face="Times New Roman">memperbolehkan banyak pengguna untuk menggunakan komputer secara interaktif pada saat yang</font></span><span style="font-size:10pt;"><font face="Times New Roman">bersamaan. <b>Komputer Personal </b>adalah mikrokomputer yang dianggap lebih kecil dan lebih murah</font></span><span style="font-size:10pt;"><font face="Times New Roman">dibandingkan komputer <i>mainframe</i>. Sistem operasi untuk komputer-komputer seperti ini diuntungkan</font></span><span style="font-size:10pt;"><font face="Times New Roman">oleh pengembangan sistem operasi untuk komputer <i>mainframe </i>dalam beberapa hal. Namun, semenjak</font></span><span style="font-size:10pt;"><font face="Times New Roman">penggunaan komputer untuk keperluan pribadi, maka utilisasi CPU tidak lagi menjadi perhatian utama.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Karena itu, beberapa desain untuk komputer <i>mainframe </i>tidak cocok untuk sistem yang lebih kecil.</font></span><font face="Times New Roman"><b><span style="font-size:10pt;">Sistem parallel </span></b><span style="font-size:10pt;">mempunyai lebih dari satu CPU yang mempunyai hubungan yang erat; CPU-CPU</span></font><span style="font-size:10pt;"><font face="Times New Roman">tersebut berbagi bus komputer, dan kadang-kadang berbagi memori dan perangkat yang lainnya. Sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">seperti itu dapat meningkatkan <i>throughput </i>dan reliabilititas. <b>Sistem <i>hard real-time </i></b>sering kali digunakan</font></span><span style="font-size:10pt;"><font face="Times New Roman">sebagai alat pengontrol untuk applikasi yang dedicated. Sistem operasi yang <b><i>hard real-time</i></b></font></span><span style="font-size:10pt;"><font face="Times New Roman">mempunyai batasan waktu yang tetap yang sudah didefinisikan dengan baik.Pemrosesan harus selesai</font></span><span style="font-size:10pt;"><font face="Times New Roman">dalam batasan-batasan yang sudah didefinisikan, atau sistem akan gagal. <b>Sistem <i>soft real-time </i></b>mempunyai lebih sedikit batasan waktu yang keras, dan tidak mendukung penjadwalan dengan menggunakan batas akhir. Pengaruh dari internet dan <i>World Wide Web</i>baru-baru ini telah mendorong</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengembangan sistem operasi modern yang menyertakan <i>web browser </i>serta perangkat lunak jaringan</font></span><span style="font-size:10pt;"><font face="Times New Roman">dan komunikasi sebagai satu kesatuan.</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">Multiprogramming </span></i><span style="font-size:10pt;">dan <i>sistem time-sharing </i>meningkatkan kemampuan komputer dengan melampaui</span></font><span style="font-size:10pt;"><font face="Times New Roman">batas operasi (<i>overlap</i>) CPU dan I/O dalam satu mesin. Hal seperti itu memerlukan perpindahan data</font></span><span style="font-size:10pt;"><font face="Times New Roman">antara CPU dan alat I/O, ditangani baik dengan polling atau <i>interrupt-driven </i>akses ke <i>I/O port</i>, atau</font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><span style="font-size:10pt;"><font face="Times New Roman">dengan perpindahan DMA. Agar komputer dapat menjalankan suatu program, maka program tersebut</font></span><span style="font-size:10pt;"><font face="Times New Roman">harus berada di memori utama (memori utama). <b>Memori utama adalah </b>satu-satunya tempat</font></span><span style="font-size:10pt;"><font face="Times New Roman">penyimpanan yang besar yang dapat diakses secara langsung oleh prosessor, merupakan suatu <i>array </i>dari</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">word </span></i><span style="font-size:10pt;">atau <i>byte</i>, yang mempunyai ukuran ratusan sampai jutaan ribu. Setiap <i>word </i>memiliki alamatnya</span></font><span style="font-size:10pt;"><font face="Times New Roman">sendiri. Memori utama adalah tempat penyimpanan yang <i>volatile</i>, dimana isinya hilang bila sumber</font></span><span style="font-size:10pt;"><font face="Times New Roman">energinya (energi listrik) dimatikan. Kebanyakan sistem komputer menyediakan <b><i>secondary storage</i></b></font></span><span style="font-size:10pt;"><font face="Times New Roman">sebagai perluasan dari memori utama. Syarat utama dari <i>secondary storage </i>adalah dapat menyimpan</font></span><span style="font-size:10pt;"><font face="Times New Roman">data dalam jumlah besar secara permanen. <i>Secondary storage </i>yang paling umum adalah disk magnetik,</font></span><span style="font-size:10pt;"><font face="Times New Roman">yang meyediakan penyimpanan untuk program mau pun data. <b>Disk magnetik </b>adalah alat penyimpanan</font></span><span style="font-size:10pt;"><font face="Times New Roman">data yang <i>nonvolatile </i>yang juga menyediakan akses secara random. <b>Tape magnetik </b>digunakan terutama</font></span><span style="font-size:10pt;"><font face="Times New Roman">untuk <i>backup</i>, penyimpanan informasi yang jarang digunakan, dan sebagai media pemindahan informasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">dari satu sistem ke sistem yang lain.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Beragam sistem penyimpanan dalam sistem komputer dapat disusun dalam hirarki berdasarkan</font></span><span style="font-size:10pt;"><font face="Times New Roman">kecepatan dan biayanya. Tingkat yang paling atas adalah yang paling mahal, tapi cepat. Semakin</font></span><span style="font-size:10pt;"><font face="Times New Roman">kebawah, biaya perbit menurun, sedangkan waktu aksesnya semakin bertambah (semakin lambat).</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi harus memastikan operasi yang benar dari sistem komputer. Untuk mencegah pengguna</font></span><span style="font-size:10pt;"><font face="Times New Roman">program mengganggu operasi yang berjalan dalam sistem, perangkat keras mempunyai dua mode: mode</font></span><span style="font-size:10pt;"><font face="Times New Roman">pengguna dan mode monitor. Beberapa perintah (seperti perintah I/O dan perintah halt) adalah perintah</font></span><span style="font-size:10pt;"><font face="Times New Roman">khusus, dan hanya dapat dijalankan dalam mode monitor. Memori juga harus dilindungi dari modifikasi</font></span><span style="font-size:10pt;"><font face="Times New Roman">oleh pengguna. <i>Timer </i>mencegah terjadinya pengulangan secara terus menerus (<i>infinite loop</i>). Hal-hal</font></span><span style="font-size:10pt;"><font face="Times New Roman">tersebut (dual mode, perintah khusus, pengaman memori, <i>timer interrupt</i>) adalah blok bangunan dasar</font></span><span style="font-size:10pt;"><font face="Times New Roman">yang digunakan oleh sistem operasi untuk mencapai operasi yang sesuai.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Sistem operasi menyediakan banyak pelayanan. Di tingkat terrendah, <b><i>sistem calls </i></b>mengizinkan program</font></span><span style="font-size:10pt;"><font face="Times New Roman">yang sedang berjalan untuk membuat permintaan secara langsung dari sistem operasi. Di tingkat</font></span><span style="font-size:10pt;"><font face="Times New Roman">tertinggi, <i>command interpreter </i>atau <i>shell </i>menyediakan mekanisme agar pengguna dapat membuat</font></span><span style="font-size:10pt;"><font face="Times New Roman">permintaan tanpa menulis program. <i>Command </i>dapat muncul dari bekas sewaktu jalankan <i>batch-mode</i>,</font></span><span style="font-size:10pt;"><font face="Times New Roman">atau secara langsung dari terminal ketika dalam mode interaktive atau <i>time-shared</i>. Program sistem</font></span><span style="font-size:10pt;"><font face="Times New Roman">disediakan untuk memenuhi kebanyakan dari permintaan pengguna. Tipe dari permintaan beragam</font></span><span style="font-size:10pt;"><font face="Times New Roman">sesuai dengan levelnya. Level <i>sistem call </i>harus menyediakan fungsi dasar, seperti kontrol proses serta</font></span><span style="font-size:10pt;"><font face="Times New Roman">manipulasi alat dan bekas. Permintaan dengan level yang lebih tinggi (<i>command interpreter </i>atau</font></span><span style="font-size:10pt;"><font face="Times New Roman">program sistem) diterjemahkan kedalam urutan <i>sistem call</i>.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Pelayanan sistem dapat dikelompokkan kedalam beberapa kategori: kontrol program, status permintaan</font></span><span style="font-size:10pt;"><font face="Times New Roman">dan permintaan I/O. Program <i>error </i>dapat dipertimbangkan sebagai permintaan yang implisit untuk</font></span><span style="font-size:10pt;"><font face="Times New Roman">pelayanan. Bila sistem pelayanan sudah terdefinisi, maka struktur dari sistem operasi dapat</font></span><span style="font-size:10pt;"><font face="Times New Roman">dikembangkan. Berbagai macam tabel diperlukan untuk menyimpan informasi yang mendefinisikan</font></span><span style="font-size:10pt;"><font face="Times New Roman">status dari sistem komputer dan status dari sistem tugas. Perancangan dari suatu sistem operasi yang baru</font></span><span style="font-size:10pt;"><font face="Times New Roman">merupakan tugas yang utama. Sangat penting bahwa tujuan dari sistem sudah terdefinisi dengan baik</font></span><span style="font-size:10pt;"><font face="Times New Roman">sebelum memulai perancangan. Tipe dari sistem yang diinginkan adalah landasan dalam memilih</font></span><span style="font-size:10pt;"><font face="Times New Roman">beragam <i>algoritma </i>dan strategi yang akan digunakan. Karena besarnya sistem operasi, maka modularitas</font></span><span style="font-size:10pt;"><font face="Times New Roman">adalah hal yang penting. Merancang sistem sebagai suatu urutan dari <i>layer </i>atau dengan menggunakan</font></span><font face="Times New Roman"><i><span style="font-size:10pt;">mikrokernel </span></i><span style="font-size:10pt;">merupakan salah satu teknik yang baik. Konsep <i>virtual machine </i>mengambil pendekatan</span></font><font face="Times New Roman"><i><span style="font-size:10pt;">layer </span></i><span style="font-size:10pt;">dan memperlakukan baik itu <i>kernel </i>dari sistem operasi dan perangkat kerasnya sebagai suatu</span></font><span style="font-size:10pt;"><font face="Times New Roman">perangkat keras. Bahkan sistem operasi yang lain dapat dimasukkan diatas <i>virtual machine </i>tersebut.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Setiap sistem operasi yang mengimplemen JVM dapat menjalankan semua program java, karena JVM</font></span><span style="font-size:10pt;"><font face="Times New Roman">mendasari dari sistem ke program java, menyediakan arsitektur tampilan yang netral.</font></span><span style="font-size:10pt;"><font face="Times New Roman">Didalam daur perancangan sistem operasi, kita harus berhati-hati untuk memisahkan pembagian</font></span><i><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></i><span style="font-size:10pt;"><font face="Times New Roman">kebijakan (<i>policy decision</i>) dengan detail dari implementasi (<i>mechanism</i>). Pemisahan ini membuat</font></span><span style="font-size:10pt;"><font face="Times New Roman">fleksibilitas yang maksimal apabila <i>policy decision </i>akan diubah kemudian. Sistem operasi sekarang ini</font></span><span style="font-size:10pt;"><font face="Times New Roman">hampir selalu ditulis dengan menggunakan bahasa tingkat tinggi. Hal ini meningkatkan implementasi,</font></span><span style="font-size:10pt;"><font face="Times New Roman">perawatan portabilitas. Untuk membuat sistem operasi untuk suatu konfigurasi mesin tertentu, kita harus</font></span><font face="Times New Roman"><span style="font-size:10pt;">melakukan <i>system</i></span><span style="font-size:10pt;font-family:Arial;"></span></font><span><font face="Times New Roman"> </font></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ygfree.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ygfree.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ygfree.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ygfree.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ygfree.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ygfree.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ygfree.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ygfree.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ygfree.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ygfree.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ygfree.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ygfree.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ygfree.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ygfree.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ygfree.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ygfree.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ygfree.wordpress.com&amp;blog=2980539&amp;post=5&amp;subd=ygfree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ygfree.wordpress.com/2008/02/29/op/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7f943e62544133d49b475b9151f581a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">ygfree</media:title>
		</media:content>
	</item>
		<item>
		<title>belajar c programing</title>
		<link>http://ygfree.wordpress.com/2008/02/25/free-for-u/</link>
		<comments>http://ygfree.wordpress.com/2008/02/25/free-for-u/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 23:37:29 +0000</pubDate>
		<dc:creator>ygfree</dc:creator>
				<category><![CDATA[belajar bahasa c]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[welcome this free all for u for learning free away        MODUL LATIHAN PEMROGRAMAN KOMPUTER (TKF1220)      Disusun oleh: Ir. BALZA ACHMAD, M.Sc.E.         JURUSAN TEKNIK FISIKAFAKULTAS TEKNIIKUNIVERSITAS GADJAH MADAYOGYAKARTA2006   LATIHAN PEMROGRAMAN KOMPUTER MODUL I &#8211; INPUT/OUTPUT &#38; JENIS DATA  Memulai Borland C++ 5.02  ·      Jalankan Borland C++ 5.02, ·      Buat project baru: pilih menu: File-New-Project&#8230; -&#62; dialog New Target [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ygfree.wordpress.com&amp;blog=2980539&amp;post=1&amp;subd=ygfree&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>welcome</p>
<p>this free all for u for learning free away</p>
<p><span id="more-1"></span></p>
<p><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:16pt;font-family:'Arial Black';">MODUL LATIHAN </span><span style="font-size:16pt;font-family:'Arial Black';">PEMROGRAMAN KOMPUTER</span><span style="font-size:16pt;font-family:Arial;"> </span><span style="font-size:16pt;font-family:'Arial Black';">(TKF1220)</span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"></span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><i><span style="font-size:14pt;font-family:Arial;">Disusun oleh:</span></i><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;">Ir. BALZA ACHMAD, M.Sc.E.</span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;"> </span><span style="font-size:14pt;font-family:Arial;">JURUSAN TEKNIK FISIKA</span><span style="font-size:14pt;font-family:Arial;">FAKULTAS TEKNIIK</span><span style="font-size:14pt;font-family:Arial;">UNIVERSITAS GADJAH MADA</span><span style="font-size:14pt;font-family:Arial;">YOGYAKARTA</span><span style="font-size:14pt;font-family:Arial;">2006</span><b><span style="font-size:14pt;font-family:'Times New Roman';"><br />
</span></b> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER </font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL I &#8211; INPUT/OUTPUT &amp; JENIS DATA</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:14pt;"><font face="Times New Roman"></font></span></b></div>
<p><b><span style="font-size:14pt;"><font face="Times New Roman"> </font></span></b><font face="Times New Roman"><b><u><span>Memulai Borland C++ 5.02</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">      </span></span></span><span><font face="Times New Roman">Jalankan Borland C++ 5.02, </font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">      </span></span></span><span><font face="Times New Roman">Buat project baru:<br />
pilih menu: File-New-Project&#8230; -&gt; dialog New Target</font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">pada Project Path and Name, isikan nama proyeknya lengkap<br />
contoh: <b>c:\saya\proyek1.ide</b></font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">pada Target Type, pilih: <b>Application [.exe]</b></font></span></p>
<p><span><font face="Times New Roman">pada Platform, pilih: <b>DOS (Standard)</b></font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">(boleh pula memilih Target Type <b>EasyWin [.exe]</b> dengan Platform <b>Windows 3.x (16)</b>)</font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">pada Target Model, pilih: <b>Large</b></font></span></p>
<p><span><font face="Times New Roman">hilangkan tanda centang pada Frameworks &#8211; Class Library<b></b></font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">klik tombol OK</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">      </span></span></span><span><font face="Times New Roman">Muncul proyek baru dengan target <b>proyek1.exe</b> dan file <b>proyek1.cpp</b></font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">Klik dobel pada <b>proyek1.cpp</b> untuk mengeditnya</font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">Siap untuk menuliskan programnya</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">      </span></span></span><span><font face="Times New Roman">Untuk menjalankan program (pilih salah satu):</font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">1. pilih menu: Debug-Run</font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">2. tekan tombol Ctrl-F9</font></span></p>
<p style="margin:0 0 0 14.2pt;" class="MsoNormal"><span><font face="Times New Roman">3. klik tombol di toolbar yang bergambar kilat kuning</font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Membuat Program Menggunakan Turbo C++ (Versi 1.01)</font></span></u></b><span><font face="Times New Roman"> </font></span></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>1.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Jalankan tc.exe (ada di c:\tc\bin\ atau d:\tc\bin\)</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>2.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Pilih menu: File-Change Dir… (pilih menu dengan Alt-F10)</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>3.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Ketikkan di directory name<span>  </span>c:\tc\works (atau folder lain untuk menyimpan file program)</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>4.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Tekan tombol Ok</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>5.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Buat file program baru dengan menu: File-New</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>6.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Ketikkan programnya</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>7.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Simpan file dengan menu: File-Save (atau File-Save As… untuk mengganti nama file)</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>8.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Compile program dengan menu: Compile-Make Exe File (atau tombol F9)</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>9.<span style="font:7pt 'Times New Roman';">      </span></span></span><span>Jika ada kesalahan, muncul jendela message dan perbaiki program sesuai dengan pesan kesalahan yang muncul</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>10.<span style="font:7pt 'Times New Roman';">  </span></span></span><span>Jalankan program dengan menu: Run-Run (atau tombol Ctrl-F9)</span></font></p>
<p style="text-indent:-18pt;margin:0 0 0 18pt;" class="MsoNormal"><font face="Times New Roman"><span><span>11.<span style="font:7pt 'Times New Roman';">  </span></span></span><span>Untuk melihat hasil eksekusi gunakan tombol Alt-F5</span></font></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Program perdana: Hello World!</font></span></u></b><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>puts(&#8220;Hello world!&#8221;)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Ada beberapa buah error, apa sajakah?<i><sup>(<span><span>1</span></span>)</sup></i> Tambahkan baris berikut pada bagian paling atas dan jalankan. Perbaiki pula error yang lain jika ada.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program menggunakan fungsi <b>puts</b> untuk menampilkan tulisan berikut di layar:<i><sup>(<span><span>2</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Hai, nama saya Balzach</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Saya sedang belajar memprogram memakai Bahasa C</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Lumayan deh kalau sudah lancar nanti</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">OK, bye-bye ya.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program tampilan menggunakan kode escape</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Gantilah fungsi <b>puts</b> pada program di atas menjadi <b>printf</b> (tanpa mengubah parameternya). Apa yang terjadi? <i><sup>(<span><span>3</span></span>)</sup></i>Apakah perbedaan antara <b>puts</b> dan <b>printf</b>? <i><sup>(<span><span>4</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program berikut:</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>printf(&#8220;1 \t2 \t3 \t4 \t5 \t6 \t7 \t8 \n&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>printf(&#8220;Program\tKomputer\tBahasa\tC++</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>printf(&#8220;\tdi Lab\tini\n&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>printf(&#8220;Saya sedang mempelajari\r&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>printf(&#8220;kode escape\n&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>puts(&#8220;Suara apakah ini?\a&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Perhatikan tampilan yang ada di layar. Bagaimana efek kode escape \n, \t, \r dan \a? <i><sup>(<span><span>5</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program menggunakan fungsi <b>puts</b> atau <b>printf</b> untuk menampilkan tulisan berikut di layar: <i><sup>(<span><span>6</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Motto saya: </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">&#8220;Anything you can perceive, you can achieve&#8221;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Kode \n adalah untuk ganti baris</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program mengisi input ke variabel string</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char nama[80];</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Masukkan nama: &#8220;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>gets(nama);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Halo &#8220;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>puts(nama);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Betul kan, kamu si %s?\n&#8221;, nama);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apa arti angka 80 pada <b>nama[80]</b> di atas? <i><sup>(<span><span>7</span></span>)</sup></i></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apa kegunaan fungsi <b>gets</b>? <i><sup>(<span><span>8</span></span>)</sup></i></font></span></p>
<p><font face="Times New Roman"><span>Gantilah baris</span><span style="font-family:'Courier New';"></span></font></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>gets(nama);<span>     </span></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">menjadi:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>scanf(&#8220;%s&#8221;,nama);</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apa pula kegunaan fungsi <b>scanf</b>? <i><sup>(<span><span>9</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program matematika bilangan bulat &amp; riil: pembagian</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int a = 10, c;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float b = 3.5, d;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>c = a/b; d = a/b;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %d\n&#8221;,a);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;b = %f\n&#8221;,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;c = %d\n&#8221;,c);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;d = %f\n&#8221;,d);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Perhatikan cara menginisialisasi nilai variabel a dan b.</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Berapakah nilai c dan d?<i><sup>(<span><span>10</span></span>)</sup></i> Mengapa nilai keduanya berbeda meskipun operasinya sama?<i><sup>(<span><span>11</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program input ke variabel bilangan: menghitung akar</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float b;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Masukkan nilai a = &#8220;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>scanf(&#8220;%d&#8221;,a);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>b = sqrt(a);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;akar dari a = %f&#8221;,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Terjadi error waktu program di atas dicompile, mengapa?<i><sup>(<span><span>12</span></span>)</sup></i></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Tambahkan </font></span><span style="font-family:'Courier New';">#include &lt;math.h&gt;</span><span><font face="Times New Roman"> pada bagian atas, lalu compile lagi. Jika berhasil, jalankan. Runtime-error apa yang muncul? <i><sup>(<span><span>13</span></span>)</sup></i> Perbaiki dan jalankan lagi. Isi nilai a dengan 9, 16, 25, dll.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Variabel a bertipe bilangan bulat. Coba masukan nilai a = 100.5</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Bagaimana hasilnya? <i><sup>(<span><span>14</span></span>)</sup></i> Mengapa bisa begitu? <i><sup>(<span><span>15</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><span>Gantilah baris</span><span style="font-family:'Courier New';"></span></font></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>scanf(&#8220;%d&#8221;,&amp;a);</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">menjadi:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>scanf(&#8220;%f&#8221;,&amp;a);</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apa yang terjadi? <i><sup>(<span><span>16</span></span>)</sup></i> Mengapa harus <b>%d</b>, dan bukannya <b>%f</b>.?<i><sup>(<span><span>17</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><span>Gantilah baris</span><span style="font-family:'Courier New';"></span></font></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;akar dari a = %f&#8221;,b);</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">menjadi:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;akar dari a = %d&#8221;,b);</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apa yang terjadi? <i><sup>(<span><span>18</span></span>)</sup></i> Mengapa harus <b>%f</b>, dan bukannya <b>%d</b>.?<i><sup>(<span><span>19</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program dengan beberapa input: menghitung rerata</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float a, b, c, rerata;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Masukkan nilai a, b dan c = &#8220;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>scanf(&#8220;%f %f %f&#8221;,&amp;a,&amp;b,&amp;c);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>rerata = (a+b+c)/3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Rerata = %f&#8221;,rerata);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dengan mengisikan tiga buah bilangan dengan diselingi spasi (contoh: 10<span>  </span>20<span>  </span>45). Coba pula dengan diselingi Enter.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Ubahlah tipe variabel a, b, dan c menjadi bilangan bulat. Apalagi yang harus diubah agar tidak terjadi error?<i><sup> (<span><span>20</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program menghitung invers</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float b, c;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Masukkan a = &#8220;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>scanf(&#8220;%d&#8221;,&amp;a);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>b = 1/a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;b = 1/%d = %f\n&#8221;,a,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>c = 1.0/a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;c = 1/%d = %f\n&#8221;,a,c);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kompil dan jalankan program di atas. Mengapa nilai b dan c berbeda meskipun operasinya sama?<i><sup> (<span><span>21</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Kepresisian bilangan riil</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float a = 3, b;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>double c;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>b = 1000/a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>c = 1000/a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %f\n&#8221;,a);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;b = %f\n&#8221;,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;c = %f\n&#8221;,c);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kompil dan jalankan program di atas. Mengapa nilai b dan c berbeda meskipun operasinya sama?<i><sup> (<span><span>22</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Pengaturan tampilan</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>double a = 3.0, b;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>b = 1000.0/a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %f\t\t b = %f\n&#8221;,a,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %7.2f\t\t b = %7.2f\n&#8221;,a,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %+7.4f\t\t b = %+7.4f\n&#8221;,a,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %g\t\t\t b = %g\n&#8221;,a,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %e\t b = %e\n&#8221;,a,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;a = %5.2e\t b = %5.2e\n&#8221;,a,b);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kompil dan jalankan program di atas. Perhatikan tampilan dari nilai a dan b untuk setiap format specifier yang berbeda. Tuliskan secara singkat maksud dari masing-masing format tadi (%f, %7.2f, %+7.4f, %g, %e, %5.2e)<i><sup><span>  </span>(<span><span>23</span></span>).</sup></i></font></span></p>
<p><span style="font-size:14pt;"><font face="Times New Roman"></font></span><b><span style="font-size:14pt;font-family:'Times New Roman';"><br />
</span></b> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER </font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL II &#8211; INPUT/OUTPUT &amp; JENIS DATA</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:14pt;"><font face="Times New Roman"></font></span></b></div>
<p><b><span style="font-size:14pt;"><font face="Times New Roman"></font></span></b></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program kombinasi input-output: data diri</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Dalam membuat program, usahakan agar mudah dimengerti, yaitu dengan memberi nama variabel yang mempunyai arti, memberi keterangan, dan membuat program terstruktur dengan baik.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk mengisikan data diri melalui keyboard dan menampilkannya di layar berikut ini:</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char Nama[50], progStudi[15];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int angkatan, NIM;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>/* Mengisikan data */</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Nama : &#8220;); gets(nama);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Program studi : &#8220;); gets(progStudi);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Angkatan : &#8220;); scanf(&#8220;%d&#8221;,&amp;angkatan);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;NIM : &#8220;); scanf(&#8220;%d&#8221;,&amp;NIM);</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>/* Menampilkan data */</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;\nData anda adalah :\n&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;%s (%s %d/%d)\n&#8221;, nama,progStudi,angkatan,NIM);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Pesan error apakah yang muncul saat program tersebut dikompil, serta bagaimana cara membetulkannya? <i><sup>(<span><span>1</span></span>).</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Perhatikan baris ke-9 di atas:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;Nama : &#8220;); gets(nama);</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">dari sini dapat disimpulkan bahwa beberapa instruksi dapat dituliskan dalam 1 baris.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Perhatikan pula baris ke-2 dan 3 dari bawah:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;%s (%s %d/%d)\n&#8221;,</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>nama,progStudi,angkatan,NIM);</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">dari sini dapat disimpulkan bahwa sebuah instruksi tunggal dapat dituliskan dalam lebih dari 1 baris.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Gantilah pemotongan kedua baris tersebut </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">(a) menjadi:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;%s (%s %d/%d)\n&#8221;,nama,progStudi,angkatan,NIM);</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">(b) menjadi:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>printf(&#8220;%s (%s %d/%d)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>\n&#8221;,nama,progStudi,angkatan,NIM);</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Manakah di antara (a) dan (b) yang memberikan pesan error, dan mengapa bisa terjadi error? <i><sup>(<span><span>2</span></span>).</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Output menggunakan stream: Hello World! dalam C++</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Hello world!\nWe&#8217;re in C++ now&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan, dan selamat! Anda telah berhasil membuat program pertama dalam bahasa C++. Gantilah isi programnya menjadi:</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Hello world!&#8221; &lt;&lt; endl</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>&lt;&lt; &#8220;We&#8217;re in C++ now&#8221;;</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Hasilnya sama dengan sebelumnya. Apakah fungsi dari <b>endl</b>?<i><sup> (<span><span>3</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah<span>  </span>program menggunakan <b>cout</b> untuk menampilkan tulisan yang sama dengan soal no (2) pada modul I <i><sup>(<span><span>4</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Input string menggunakan stream: program nama</font></span></u></b><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char nama[80];</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nama: &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; nama;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Halo &#8221; &lt;&lt; nama &lt;&lt; endl</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>&lt;&lt; &#8220;Betul kan, kamu si &#8221; &lt;&lt; nama;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Bandingkan program di atas dengan program yang serupa menggunakan bahasa C dalam modul 1. Menggantikan fungsi apakah <b>cin</b> dan <b>cout</b> <i><sup>(<span><span>5</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program input ke variabel bilangan: menghitung akar</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;math.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float b;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nilai a = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; a;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>b = sqrt(a);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;akar dari a = &#8221; &lt;&lt; b;</font></span></p>
<p><font face="Courier New"><span>}</span><span style="font-size:14pt;"></span></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Bandingkan dengan program serupa pada modul 1 yang mengisikan variabel dengan fungsi <b>scanf</b>. Apakah perbedaan perlakuan terhadap variabel <b>a</b> untuk input menggunakan <b>cin</b> dalam program di atas dengan yang menggunakan <b>scanf</b> <i><sup>(<span><span>6</span></span>)</sup></i>?</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Gantilah tipe variabel a menjadi bilangan riil. Periksalah apakah ada bagian lain yang perlu dimodifikasi akibat pergantian tersebut <i><sup>(<span><span>7</span></span>)</sup></i>?</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program dengan beberapa input: menghitung rerata</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float a, b, c, rerata;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nilai a, b dan c = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &lt;&lt; a &lt;&lt; b &lt;&lt; c;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>rerata = (a+b+c)/3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Rerata = &#8221; &lt;&lt; rerata;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apakah yang salah dalam program tersebut dan bagaimanakah yang benar <i><sup>(<span><span>8</span></span>)</sup></i>?</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Program perhitungan gaji</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk menghitung total pendapatan bulanan seorang karyawan dengan ketentuan sebagai berikut:</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">        </span></span></span><span><font face="Times New Roman">Tunjangan istri/suami = 10% dari gaji pokok</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">        </span></span></span><span><font face="Times New Roman">Tunjangan anak = 5% dari gaji pokok untuk setiap anak</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">        </span></span></span><span><font face="Times New Roman">THR = Rp 5000 kali masa kerja (tahun)</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">        </span></span></span><span><font face="Times New Roman">(-) Pajak = 15% dari gaji pokok, tunjangan istri &amp; anak</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">        </span></span></span><span><font face="Times New Roman">Bantuan transport = Rp 3000 kali masuk kerja (hari)</font></span></p>
<p style="text-indent:-14.2pt;margin:0 0 0 14.2pt;" class="MsoNormal"><span style="font-family:Symbol;"><span>·<span style="font:7pt 'Times New Roman';">        </span></span></span><span><font face="Times New Roman">(-) Polis asuransi = Rp 20000</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">tanda (-) artinya mengurangi pendapatan. </font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Tentukan dahulu apa-apa saja yang akan menjadi input (dari kibod) dan output (ke layar) dari program <i><sup>(<span><span>9</span></span>)</sup></i>. Tentukan juga variabel-variabel yang akan digunakan beserta tipenya <i><sup>(<span><span>10</span></span>)</sup></i> (ingatlah untuk menggunakan nama yang mudah dimengerti). Buat <i>pseudo-code</i>nya<i><sup>(<span><span>11</span></span>)</sup></i> serta programnya dalam bahasa C++ <i><sup>(<span><span>12</span></span>)</sup></i>.</font></span></p>
<p><span style="font-size:12pt;font-family:'Times New Roman';"><br />
</span> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER</font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL III &#8211; STRUKTUR PEMROGRAMAN: PENCABANGAN</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:14pt;"><font face="Times New Roman"></font></span></b></div>
<p><b><u><span><span style="text-decoration:none;"><font face="Times New Roman"> </font></span></span></u></b><font face="Times New Roman"><b><u><span>Pencabangan tunggal: IF</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program di bawah ini. Jika umur diisi lebih dari 60 tahun maka akan ditampilkan komentar.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>int umur;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan umurmu = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; umur;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if umur &gt;= 60</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Halo mbah&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Jadi umurmu &#8221; &lt;&lt; umur &lt;&lt; &#8221; tahun&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kompilelah program tersebut, error apakah yang muncul dan bagaimana yang benar?<i><sup> (<span><span>1</span></span>)</sup></i> Perbaiki program tersebut dan jalankan beberapa kali dengan mengisikan nilai umur yang bervariasi.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Tambahkan baris berikut setelah baris cout &lt;&lt; &#8220;Halo mbah&#8230;, untuk memberi komentar tambahan jika umur lebih dari 60 tahun</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Salam buat cucumu ya&#8221; &lt;&lt; endl;</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan dengan mengisikan umur 80 tahun, lalu jalankan lagi untuk umur 20 tahun. Mengapa komentar tambahan selalu muncul untuk umur berapapun (tidak sesuai dengan yang diinginkan) serta bagaimana yang benar? <i><sup>(<span><span>2</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program sesuai contoh berikut</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>int tahun, umur;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan tahun kelahiranmu = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; tahun;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>umur = 2003-tahun;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Umurmu &#8221; &lt;&lt; umur &lt;&lt; &#8221; tahun\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (umur &lt; 17);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>{<span>  </span>cout &lt;&lt; &#8220;Kamu belum sweet seventeen\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Belum cukup umur\n&#8221;; }</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kompile program tersebut, tidak ada <i>compile </i>error (kecuali beberapa warning). Jalankan dan isikan tahun kelahiran 1988 dan 1975 serta nilai lain. Kesalahan apakah yang terjadi dan bagaimana yang benar? <i><sup>(<span><span>3</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"> </font></span><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Pencabangan ganda: IF-ELSE</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk menentukan apakah seseorang lulus atau tidak menggunakan nilainya</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>int N;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nilai (0 s/d 100) = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (N &gt;= 50)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Lulus&#8221;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>else (N &lt; 50)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Tidak lulus&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Error apa yang<span>  </span>muncul waktu dikompile dan bagaimana yang benar? <i><sup>(<span><span>4</span></span>)</sup></i> Perbaiki dan jalankan dengan mengisikan beberapa nilai N.</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Pencabangan bertingkat: IF-ELSE-IF</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk memberi nilai huruf berikut.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>int N;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nilai = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Nilai huruf = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (N &gt;= 80)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;A&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (N &gt;= 60)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;B&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (N &gt;= 40)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;C&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (N &lt; 40)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;D&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan dan isikan nilai 15, 25, 50, 75, dan 100. Hasilnya tidak sesuai dengan yang seharusnya, jelaskan mengapa bisa terjadi seperti itu<i><sup>(<span><span>5</span></span>)</sup></i>. Perbaiki program di atas dengan struktur pencabangan bertingkat: <i>if &#8230; else if &#8230; else if &#8230;</i>. dst.<i><sup>(<span><span>6</span></span>)</sup></i>. Buat flowchart dari program tersebut <i><sup>(<span><span>7</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"> </font></span><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Kondisi kombinatorial</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Perbaiki program di atas dengan kondisi yang merupakan kombinasi logika, misalnya: <i>jika N lebih dari atau sama dengan 60 tetapi kurang dari 80 maka &#8230;</i>, tanpa menggunakan pencabangan bertingkat <i><sup><span> </span>(<span><span>8</span></span>)</sup></i>. Buat flowchart dari program tersebut <i><sup>(<span><span>9</span></span>)</sup></i>.</font></span></p>
<p><b><span><font face="Times New Roman"></font></span></b></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buat flowchart dari program di bawah ini<i><sup>(<span><span>10</span></span>)</sup></i>.</font></span></p>
<p><b><span><font face="Times New Roman"></font></span></b></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>int N;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nilai = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Nilai huruf = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (N &gt;= 40)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>if (N &gt;= 60)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>         </span>if (N &gt;= 80)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>            </span>cout &lt;&lt; &#8220;A&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>         </span>else</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>            </span>cout &lt;&lt; &#8220;B&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>else</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>         </span>cout &lt;&lt; &#8220;C&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>else</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;D&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Menu: Program konversi suhu</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya. Program dimulai dengan mengisikan suhu yang akan dikonversi, kemudian menampilkan pilihan (menu) sebagai berikut:</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Pilih konversi berikut:<span>  </span></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>A. Celcius ke Fahrenheit</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>B. Fahrenheit ke Celcius</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>C. Celcius ke Reamur</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>D. Reamur ke Celsius</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>E. Fahrenheit ke Reamur</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>F. Reamur ke Fahrenheit</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Setelah dipilih, maka program melakukan perhitungan konversi sesuai dengan yang dipilih dan menampilkan hasilnya. Gunakan struktur pencabangan IF untuk program tersebut. Buat dahulu flowchartnya baru programnya <i><sup>(<span><span>11</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"></font></span><b><span style="font-size:14pt;font-family:'Times New Roman';"><br />
</span></b> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER </font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL IV &#8211; STRUKTUR PEMROGRAMAN: LOMPATAN &amp; KALANG</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span><font face="Times New Roman"></font></span></b></div>
<p><b><span style="font-size:14pt;"><font face="Times New Roman"> </font></span></b><font face="Times New Roman"><b><u><span>Pencabangan</span></u></b><u><span></span></u></font></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program berikut dan isikan umur = 20, 19, 21, 23, dst. Bagaimana keluarannya? <i><sup>(<span><span>1</span></span>)</sup></i>. Bagian mana yang salah dan bagaimana modifikasinya? <i><sup>(<span><span>2</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>int umur;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan umur anda = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; umur;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (umur = 20)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Umur anda tepat duapuluh tahun&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>else</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Umur anda bukan duapuluh tahun&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Pencabangan berganda: SWITCH </span></u></b><u><span></span></u></font></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program berikut dan isikan kategori = A,B,C,D, atau E. Bagaimana keluarannya? <i><sup>(<span><span>3</span></span>)</sup></i>. Modifikasilah agar menjadi benar<i><sup>(<span><span>4</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char kategori;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float diskon;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Kategori pelanggan (A/B/C/D/E) = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; kategori;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>switch (kategori) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>case &#8216;A&#8217;:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>diskon = 40;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>case &#8216;B&#8217;:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>diskon = 25;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>case &#8216;C&#8217;:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>case &#8216;D&#8217;:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>diskon = 10;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>default:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>diskon = 0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Diskon = &#8221; &lt;&lt; diskon &lt;&lt; &#8220;%&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Lompatan: label dan goto</span></u></b><u><span></span></u></font></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program di bawah ini. Jalankan dan tulislah tampilan yang muncul<i><sup> (<span><span>5</span></span>)</sup></i>. Terangkan fungsi dari label dan goto<i><sup> (<span><span>6</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Ini langkah pertama&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>goto LABEL2;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">LABEL1:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Ini langkah kedua&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>goto LABEL3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">LABEL2:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Ini langkah ketiga&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>goto LABEL1;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">LABEL3:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Ini langkah keempat&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Pencabangan &amp; lompatan untuk perulangan</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;conio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>float C, F;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int tombol;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Ulangi</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan suhu dalam Celcius = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; C;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>F = 1.8*C+32;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Suhu dalam Fahrenheit = &#8221; &lt;&lt; F</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>&lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Apakah mau mengulangi (Y/T)? &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>tombol = getch();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (tombol == &#8216;Y&#8217;)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>goto Ulangi;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Selesai&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kompile program di atas, ada error yaitu kesalahan dalam menulis label, bagaimana yang benar?<i><sup> (<span><span>7</span></span>)</sup></i>. Perbaiki dan jalankan. Modifikasi program tersebut untuk dapat mengulangi jika diberi jawaban karakter Y maupun y<i><sup>(<span><span>8</span></span>)</sup></i>. Apakah fungsi dari <b>getch()</b><i><sup>(<span><span>9</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Kalang bersyarat “periksa-jalankan” : WHILE</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;conio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>char nama[80];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int tombol;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>while ((tombol == &#8216;Y&#8217;)||(tombol == &#8216;y&#8217;)) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Masukkan nama anda = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cin &gt;&gt; nama;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Halo &#8221; &lt;&lt; nama &lt;&lt; endl &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Apakah mau mengulangi (Y/T)? &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>tombol = getch();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; endl &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Selesai&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas, apa yang terjadi dan mengapa bisa begitu? <i><sup>(<span><span>10</span></span>)</sup></i>. Bagaimana yang benar?<i><sup> (<span><span>11</span></span>)</sup></i>. Perbaiki dan jalankan. </font></span></p>
<p><span><font face="Times New Roman"> </font></span><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><b><u><span><font face="Times New Roman">Kalang bersyarat “jalankan- periksa”: DO-WHILE</font></span></u></b></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;conio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span>char nama[80];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int tombol, cacah = 0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float nilai, jumlah = 0, rerata;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Menghitung rerata nilai\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nilai, &#8220;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>&lt;&lt; &#8220;isikan negatif jika selesai\n\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>do {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cacah++;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;Data ke-&#8221; &lt;&lt; cacah &lt;&lt; &#8221; = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cin &gt;&gt; nilai;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>jumlah = jumlah+nilai;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>} while (nilai &gt;= 0);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>rerata = jumlah/cacah;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;\nBanyaknya data = &#8221; &lt;&lt; cacah;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;\nJumlah = &#8221; &lt;&lt; jumlah;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;\nRerata = &#8221; &lt;&lt; rerata;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apa fungsi instruksi <b>cacah++</b> <i><sup>(<span><span>12</span></span>)</sup></i>.</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dan masukkan beberapa nilai untuk dihitung reratanya, akhiri masukan dengan memberikan nilai negatif (jangan cuma tanda minus thok). Periksa jawabannya, apakah jawaban yang diperoleh sudah benar? Perbaiki program tersebut agar menjadi benar <i><sup>(<span><span>13</span></span>)</sup></i>. </font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk menghitung jumlah &amp; rerata nilai, tetapi dengan memasukkan dahulu berapa banyaknya nilai yang akan dimasukkan. Tampilannya adalah sbb (huruf tebal adalah nilai yang diisikan melalui keyboard). Buatlah dalam 2 versi, pertama menggunakan kalang WHILE <i><sup>(<span><span>14</span></span>)</sup></i>, dan kedua menggunakan kalang DO-WHILE <i><sup>(<span><span>15</span></span>)</sup></i>.</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Banyaknya nilai = <b>3</b></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Data ke-1 = <b>10</b></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Data ke-2 = <b>9</b></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Data ke-3 = <b>8</b></font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Jumlah = 27</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Rerata = 9 </font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Menu: Program konversi suhu dengan SWITCH</span></u></b><u><span></span></u></font><span style="font-size:9pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buat pula program yang sama dengan pada bagian akhir Modul III menggunakan struktur SWITCH, Buat dahulu flowchartnya baru programnya <i><sup>(<span><span>16</span></span>)</sup></i>. </font></span></p>
<p><span style="font-size:12pt;font-family:'Times New Roman';"><br />
</span> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER</font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL V &#8211; STRUKTUR PEMROGRAMAN: KALANG</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:10pt;"><font face="Times New Roman"></font></span></b></div>
<p><b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></b><font face="Times New Roman"><b><u><span>Tabel kuadrat</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iomanip.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int x = 0;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;<span>  </span>x<span>    </span>x kuadrat\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>while (x &lt;= 20)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt;setw(3)&lt;&lt;x&lt;&lt;setw(8)&lt;&lt;(x*x)&lt;&lt;endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span> </span><span>    </span>x++;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program untuk menampilkan tabel kuadrat di atas. Jangan kaget karena program akan terus mengalir ke bawah. (untuk menghentikannya tekan tombol CTRL C. Jika masih belum bisa, tekan CTRL ALT DEL dan tunggu beberapa saat lalu tekan tombol End Task pada bagian yang Not Responding). Apa yang menyebabkan hal itu terjadi<i><sup>(<span><span>1</span></span>)</sup></i>? Bagaimana yang benar<i><sup>(<span><span>2</span></span>)</sup></i>? Gantilah angka-angka pada fungsi <b>setw()</b> dan perhatikan hasilnya. Apa guna fungsi tersebut <i><sup>(<span><span>3</span></span>)</sup></i> ?</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Memutus kalang: BREAK &amp; CONTINUE</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{<span>  </span></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int i = 0;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; i;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>do {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>i++;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8221; &#8211; &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">//<span>      </span>if (i == 4)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">//<span>        </span>break;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; i;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>} while (i &lt; 10);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;\nSelesai\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dan catat tampilannya di layar. Apa fungsi simbul<span>  </span><b>/ / </b><i><sup>(<span><span>4</span></span>)</sup></i> ? Hilangkan kedua tanda <b>/ /</b> tersebut dan jalankan. Apa fungsi dari keyword <b>break</b> <i><sup>(<span><span>5</span></span>)</sup></i> ? Gantilah <b>break</b> dengan <b>continue</b> dan jalankan. Apa fungsi dari <b>continue</b><i><sup>(<span><span>6</span></span>)</sup></i> ?</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Tabel sinus</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;math.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>const float PI = 3.141593;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int x = 0, x2;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float y, y2;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>puts(&#8220;Tabel sinus\n&#8212;&#8212;&#8212;&#8211;&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>puts(&#8220;<span>  </span>x<span>    </span>sin(x)<span>       </span>x<span>    </span>sin(x)&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>do {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>y = sin(x/180.0*PI);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>x2 = x+180;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>y2 = sin(x2/180*PI);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>printf(&#8220;%4d %8.4f<span>     </span>%4d %8.4f\n&#8221;,</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>         </span>x,y,x2,y2);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>x += 10;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>} while (x &lt;= 180);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><font face="Times New Roman"><span>Program di atas menampilkan tabel sinus. Apa yang menyebab-kan nilai dalam tabel tersebut salah <i><sup>(<span><span>7</span></span>) </sup></i>Bagaimana yang benar<i><sup> (<span><span>8</span></span>)</sup></i> Apakah fungsi dari operator <b>+=</b> pada instruksi </span><b><span style="font-size:11pt;">x += 10</span></b><i><sup><span style="font-size:13pt;"> </span><span>(<span><span>9</span></span>)</span></sup></i><span>. Tambahkan instruksi berikut pada baris setelah while</span></font></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>PI = 3.14;</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Pesan error apa yang muncul dan mengapa terjadi error<i><sup> (<span><span>10</span></span>)</sup></i>?</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Tabel konversi suhu</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Dengan struktur yang serupa (tapi tak sama) memakai DO-WHILE, buatlah tabel konversi suhu dari Celcius ke Fahrenheit, Reamur, dan Kelvin, mulai dari suhu 0</font></span><span style="font-family:Symbol;"><span>°</span></span><span><font face="Times New Roman">C sampai 100</font></span><span style="font-family:Symbol;"><span>°</span></span><span><font face="Times New Roman">C dengan langkah 5</font></span><span style="font-family:Symbol;"><span>°</span></span><span><font face="Times New Roman">C. Tampilannya kurang lebih adalah sbb<i><sup> (<span><span>11</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Tabel konversi suhu</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>C<span>       </span>F<span>        </span>R<span>       </span>K</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>0<span>    </span><span> </span>32.0<span>      </span>0.0<span>   </span>273.25</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>5<span>     </span>41.0<span>      </span>4.0<span>   </span>278.25</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>10<span>     </span>50.0<span>      </span>8.0<span>   </span>283.25</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">&#8230;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>95<span>    </span>203.0<span>     </span>76.0<span>   </span>368.25</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span> </span>100<span>    </span>212.0<span>     </span>80.0<span>   </span>373.25</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Metode numeris: Bisection</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Program untuk mencari akar persamaan (zeros) menggunakan metode bisection berikut ini adalah contoh aplikasi pemrograman komputer pada metode numeris. Jawaban secara analitik adalah x = 3 atau -1. Jalankan dan masukkan tebakan awal bawah = 2 dan atas = 5 (cobalah juga kombinasi yang lain, misalnya xL = -5 dan xU = 0).</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iomanip.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;math.h&gt;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int iterasi = 0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>double xL, xC, xU, yL, yC, yU;</font></span></p>
<p><span style="font-size:9pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Mencari akar persamaan x*x-2*x-3=0&#8243;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>&lt;&lt; &#8221; dengan metode bisection\n&#8221;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>&lt;&lt; &#8220;Masukkan tebakan awal bawah = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; xL;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan tebakan awal atas = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; xU;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;iterasi<span>     </span>xL<span>          </span>xC&#8221;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>&lt;&lt; &#8220;<span>          </span>xU<span>          </span>yL&#8221;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>&lt;&lt; &#8220;<span>          </span>yC<span>          </span>yU\n&#8221;; </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>do {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>xC = (xL+xU)/2;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>yL = xL*xL-2*xL-3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>yU = xU*xU-2*xU-3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>yC = xC*xC-2*xC-3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; setw(5) &lt;&lt; iterasi</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>           </span>&lt;&lt; setiosflags(ios::fixed)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>           </span>&lt;&lt; setprecision(5)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>           </span>&lt;&lt; setw(12) &lt;&lt; xL </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>           </span>&lt;&lt; setw(12) &lt;&lt; xC</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>           </span>&lt;&lt; setw(12) &lt;&lt; xU</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>           </span>&lt;&lt; setw(12) &lt;&lt; yL</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span> </span><span>          </span>&lt;&lt; setw(12) &lt;&lt; yC</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>           </span>&lt;&lt; setw(12) &lt;&lt; yU &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>if (yL*yC &lt;= 0)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>         </span>xU = xC;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>else</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>         </span>xL = xC;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>iterasi++;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>} while ((iterasi &lt;= 50)&amp;&amp;(fabs(yC)&gt;1e-5));</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Jadi akarnya adalah &#8221; &lt;&lt; xC;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Gantilah parameter pada fungsi <b>setprecision()</b> dengan angka 7. Apakah guna dari fungsi <b>setprecision() </b><i><sup>(<span><span>12</span></span>)</sup></i>? Dengan menggunakan nilai presisi 4, gantilah <b>ios::fixed</b> menjadi <b>ios::scientific</b>. Apa beda antara <b>ios::fixed</b> dan <b>ios::scientific </b><i><sup>(<span><span>13</span></span>)</sup></i>? Apakah fungsi dari <b>fabs()</b><i><sup>(<span><span>14</span></span>)</sup></i>? </font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apabila hendak menggunakan program tersebut untuk persamaan yang lain yaitu <b>exp(x) &#8211; 2*x &#8211; 2 = 0</b>, apakah yang harus diubah dalam program tersebut<i><sup>(<span><span>15</span></span>)</sup></i>? (akar persamaan tersebut kira-kira adalah = 1.67834. </font></span></p>
<p><span style="font-size:12pt;font-family:'Times New Roman';"><br />
</span> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER</font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL VI &#8211; STRUKTUR PEMROGRAMAN: KALANG FOR &amp; VARIABEL LARIK (ARRAY)</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:10pt;"><font face="Times New Roman"></font></span></b></div>
<p><b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></b><b><u><span><font face="Times New Roman">Kalang FOR untuk perulangan</font></span></u></b><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int i;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>for (i=1; i&lt;=20; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; &#8220;kalang ke-&#8221; &lt;&lt; i &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dan lihat hasilnya. Perhatian fungsi dari ketiga bagian pada struktur for (yang dibatasi dengan tanda titik-koma) dengan mengubah baris for di atas menjadi:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">(a)<span>   </span>for (i=10; i&lt;=20; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">(b)<span>   </span>for (i=1; i&lt;=10; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">(c)<span>   </span>for (i=1; i&lt;=20; i=i+2) {</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jelaskan fungsi masing-masing bagian pada baris for<span>  </span><i><sup>(<span><span>1</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Kalang FOR bertingkat: Tabel Perkalian</font></span></u></b><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iomanip.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>for (int i=1; i&lt;=10; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>for (int j=1; j&lt;=10; j++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>cout &lt;&lt; setw(5) &lt;&lt; i*j;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dan perhatikan tampilannya. Ubahlah satu baris saja program tersebut untuk mendapatkan tabel yang berbentuk segitiga. dengan contoh tampilan sbb: <i><sup>(<span><span>2</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>1</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>2<span>    </span>4</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>3<span>    </span>6<span>    </span>9</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>&#8230;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>9<span>   </span>18<span>   </span>27<span>   </span>36<span>   </span>45<span>   </span>54<span>   </span>63<span>   </span>72<span>   </span>81</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span> </span>10<span>   </span>20<span>   </span>30<span>   </span>40<span>   </span>50<span>   </span>60<span>   </span>70<span>   </span>80<span>   </span>90<span>  </span>100</font></span></p>
<p><span><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Kalang FOR untuk Tabel Kode ASCII</span></u></b><u><span></span></u></font><u><span><span style="text-decoration:none;"><font face="Times New Roman"> </font></span></span></u></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program untuk menampilkan tabel ASCII di bawah ini.</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Tabel ini berisi kode-kode ASCII dan karakter yang diwakilinya. Kelompok karakter apa yang masing-masing mempunyai kode dari 48 s/d 57, dari 65 s/d 90, dari 97 s/d 122 <i><sup>(<span><span>3</span></span>)</sup></i>? </font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iomanip.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;\t&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>for (int i=32; i&lt;=255; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; setw(3) &lt;&lt; i &lt;&lt; &#8221; &#8220;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>          </span>&lt;&lt; char(i) &lt;&lt; &#8220;<span>   </span>&#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"> </span><font face="Times New Roman"><b><u><span>Kalang FOR bertingkat untuk simulasi bunyi dering telepon</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kompile program di bawah ini. 2 buah error apa yang terjadi dan bagaimana yang benar <i><sup>(<span><span>4</span></span>)</sup></i>? Ubahlah angka 1000 menjadi 5000, dan periksalah apa fungsi <b>delay()</b> <i><sup>(<span><span>5</span></span>)</sup></i>? Ubahlah nilai pada sound(), dan periksalah apa fungsi <b>sound()</b> <i><sup>(<span><span>6</span></span>)</sup></i>?</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;dos.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{ </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int kring;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (kring = 1, kring &lt;=2, kring++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>delay(1000);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; &#8220;kr&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>for (i=1; i&lt;=20; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;i&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>sound(600);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>delay(30);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span><span>  </span>nosound();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>sound(1500);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>delay(30);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>nosound();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;ng\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"> </span><font face="Times New Roman"><b><u><span>Variabel larik pada perhitungan nilai rerata</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Ingat kembali program menghitung rerata 3 nilai pada Modul II. Alih-alih menggunakan 3 buah variabel (a, b, dan c), program tersebut dapat dimodifikasi menggunakan sebuah variabel larik a. Error apa yang terjadi dan bagaimana yang benar <i><sup>(<span><span>7</span></span>)</sup></i>? </font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float rerata, a[3];</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan 3 buah nilai = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span><span> </span>cin &gt;&gt; a(0) &gt;&gt; a(1) &gt;&gt; a(2);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>rerata = (a[0]+a[1]+a[2])/3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Rerata = &#8221; &lt;&lt; rerata;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Program menghitung rerata secara umum dapat berupa program di bawah ini. Error apa yang ada dan bagaimana yang benar <i><sup>(<span><span>8</span></span>)</sup></i>? Isikan banyaknya nilai = 4 dan isikan nilai-nilainya. Program berjalan dengan lancar. Lalu coba lagi dengan banyaknya nilai = 15 dan isikan nilai-nilainya. Apa yang terjadi dan mengapa begitu, serta bagaimana memperbaikinya <i><sup>(<span><span>9</span></span>)</sup></i>?</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>float jumlah, rerata, a[5];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Banyaknya nilai = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>jumlah = 0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; &#8220;Nilai ke-&#8221; &lt;&lt; (i+1) &lt;&lt; &#8221; = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cin &gt;&gt; a[i];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>jumlah = jumlah+a[i];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>rerata = jumlah/N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Rerata = &#8221; &lt;&lt; rerata;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"> </span><span style="font-family:'Courier New';"> </span><font face="Times New Roman"><b><u><span>Perhitungan nilai rerata dan standar deviasi</span></u></b><u><span></span></u></font><span><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Tambahkan beberapa baris (atau modifikasi) program di atas sehingga selain memberikan nilai rerata juga menghitung standar deviasi <i><sup>(<span><span>10</span></span>)</sup></i>? </font></span></p>
<p><span style="font-family:'Courier New';"> </span><span style="font-family:'Courier New';"> </span><font face="Times New Roman"><b><u><span>Program menghitung tinggi pantulan bola jatuh bebas</span></u></b><u><span></span></u></font><span style="font-family:'Courier New';"> </span><font face="Times New Roman"><span>Buatlah program untuk menghitung tinggi pantulan bola yang jatuh, dengan asumsi tinggi pantulan bola adalah 0.8 kali tinggi sebelumnya. Tinggi awal bola jatuh diisikan melalui keyboard. Contoh tampilan program terlihat di bawah ini. Maksimal perhitungan adalah sampai pantulan ke 20 atau apabila tinggi pantulan sudah di bawah 1. Gunakan kalang <b>for</b> dan <b>break</b>. <i><sup>(<span><span>11</span></span>)</sup></i>?</span><span style="font-family:'Courier New';"></span></font><span style="font-family:'Courier New';"> </span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Tinggi awal = 10</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Pantulan ke<span>      </span>tinggi</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>1<span>           </span>8.000</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>2<span>           </span>6.400</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>3<span>           </span>5.120</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>&#8230;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>10<span>           </span>1.074</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>11<span>           </span>0.859 </font></span></p>
<p><span><font face="Times New Roman"> </font></span><span><font face="Times New Roman"> </font></span><span style="font-size:12pt;font-family:'Times New Roman';"><br />
</span> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER</font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL VII &#8211; VARIABEL LARIK: MATRIKS &amp; STRING</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:10pt;"><font face="Times New Roman"><span>                                                                                                                                       </span></font></span></b></div>
<p><b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></b><b><u><span><font face="Times New Roman">Sekup variabel dalam kalang FOR</font></span></u></b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int i = 5;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;di luar kalang i = &#8221; &lt;&lt; i &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (i=1; i&lt;=10; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; &#8220;di dalam kalang i = &#8221; &lt;&lt; i &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;di luar kalang i = &#8221; &lt;&lt; i &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dan lihat hasilnya. Gantilah pernyataan for di atas menjadi:</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=1; i&lt;=10; i++) {</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">jalankan program tersebut dan perhatikan nilai i yang ditampil-kan. Apa pengaruh pendefinisian variabel i di dalam kalang for<i><sup>(<span><span>1</span></span>)</sup></i>. Gantilah pernyataan for di atas dengan menghilangkan bagian inisialisasi kalang for menjadi:</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (; i&lt;=10; i++) {</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">jalankan program tersebut dan lihat nilai i yang ditampilkan. Apakah yang terjadi apabila tidak dilakukan inisialisasi pada kalang for<i><sup>(<span><span>2</span></span>)</sup></i>.</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Kalang FOR untuk mengisi dan menampilkan matriks </font></span></u></b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int N = 3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>float A[5][5];</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>for (int j=0; j&lt;N; j++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;A(&#8221; &lt;&lt; i &lt;&lt; &#8220;,&#8221; &lt;&lt; j &lt;&lt; &#8220;) = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cin &gt;&gt; A[i][j];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Matriks A = \n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>for (int j=0; j&lt;N; j++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;\t&#8221; &lt;&lt; A[i][j];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Program di atas adalah sebuah contoh program yang digunakan untuk mengisi nilai-nilai elemen pada matriks ukuran 3&#215;3. Modifikasi (dengan menambah atau mengubah sekitar 3 baris saja) program tersebut agar dapat digunakan untuk mengisi dan menampilkan matriks yang berukuran 4 baris x 5 kolom <i><sup>(<span><span>3</span></span>)</sup></i>.</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Tambahkan beberapa baris perintah-perintah lain pada <u>program di atas</u> untuk mengisi dan menampilkan juga matriks B dengan ukuran yang sama (3&#215;3), kemudian juga menampilkan matriks C yang merupakan matriks hasil penjumlahan A dan B. Ingatlah bahwa penjumlahan matriks dilakukan elemen demi elemen <i><sup>(<span><span>4</span></span>)</sup></i>.</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kemudian dari program tersebut gantilah kalang yang digunakan untuk menghitung matriks C sebagai penjumlahan antara A dan B menjadi perkalian antara matriks A dan B, seperti di bawah ini</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>for (int j=0; j&lt;N; j++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>C[i][j] = 0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>for (int k=0; k&lt;N; k++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>C[i][j] = C[i][j]+A[i][k]*B[k][j];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Operasi pada string: Kutak-katik nama</font></span></u></b><span style="font-size:9pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;string.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char nama[80], nama2[80], tulisan[80];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int panjang, posisi;</font></span></p>
<p><span style="font-size:7pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nama = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>gets(nama);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>strcpy(tulisan,&#8221;Halo &#8220;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; strcat(tulisan,nama) &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (strcmp(nama,&#8221;Fella&#8221;) == 0) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; &#8220;Namamu Fella kan&#8221; &lt;&lt; endl; }</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>else {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; &#8220;Namamu bukan Fella&#8221; &lt;&lt; endl; }</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>panjang = strlen(nama);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;panjang namamu &#8221; &lt;&lt; panjang &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>posisi = strcspn(nama,&#8221;z&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>if (posisi &lt; panjang) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; &#8220;Huruf z pada posisi &#8221; &lt;&lt; posisi</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>          </span>&lt;&lt; endl; }</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>else {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; &#8220;Tidak ada huruf z nya&#8221; &lt;&lt; endl; }</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>strcpy(nama2,nama);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; strupr(nama2) &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; strlwr(nama2) &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; strrev(nama2) &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; strset(nama2,&#8217;x') &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dan jelaskan kegunaan dari fungsi berikut ini: strlen(), strcpy(), strcat(), strcmp(),strlen(), strcspn(), strupr(), strlwr(), strrev(), dan strset() <i><sup>(<span><span>5</span></span>)</sup></i>. Gantilah baris:</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>gets(nama);</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">menjadi:</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; nama;</font></span></p>
<p><span style="font-size:9pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apakah efeknya pada waktu program dijalankan? <i><sup>(<span><span>6</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">String sebagai larik karakter: Caesar Chiper</font></span></u></b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Program berikut ini digunakan untuk mengenkripsi (mengkode-kan) sebuah tulisan dengan Caesar Chiper. Caranya adalah dengan menggeser kode ASCII dari masing-masing karakter pada tulisan tersebut dengan sebuah kunci yang berupa bilangan bulat. Kode yang valid (<i>visible</i>) adalah antara 32 s/d 126.</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;string.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char tulisan[100], terenkripsi[100];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>int kunci, panjang, kode;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan tulisan = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>gets(tulisan);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Masukkan nilai kunci = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cin &gt;&gt; kunci;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>panjang = strlen(tulisan);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>strcpy(terenkripsi,tulisan);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>for (int i=0;i&lt;panjang;i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>kode = int(tulisan[i])+kunci;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>if (kode &lt; 32)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>kode = kode + 95;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>if (kode &gt; 126)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>kode = kode &#8211; 95;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>terenkripsi[i] = char(kode);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Terenkripsi = &#8221; &lt;&lt; terenkripsi &lt;&lt; endl;</font></span></p>
<p><font face="Courier New"><span>}</span><span style="font-size:10pt;"></span></font><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program tersebut, masukkan sebuah tulisanb dan juga kunci untuk mengenkripsi (bil bulat positif atau negatif). Sifat operasinya adalah dapat-balik (<i>reversible</i>). Untuk mendekripsi gunakan nilai lawan dari kunci tersebut. Bagaimana bentuk terenkripsi dari “Teknik Fisika” dengan kunci 10 <i><sup>(<span><span>7</span></span>)</sup></i>? Apa tulisan asli dari pesan berikut ini serta berapa nilai kunci yang dipakai untuk mengenkripsi tulisan aslinya <i><sup>(<span><span>8</span></span>)</sup></i>?</font></span></p>
<p><span style="font-size:8pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Ru|qzq#0!u}# w#q}q~0rqxq$q0S</font></span></p>
<p><span style="font-size:8pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Hilangkan baris</font></span><span style="font-family:'Courier New';"> strcpy(&#8230;</span><span><font face="Times New Roman"> di atas, apa yang terjadi <i><sup>(<span><span>9</span></span>)</sup></i>?</font></span></p>
<p><b><span style="font-size:14pt;font-family:'Times New Roman';"><br />
</span></b> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER</font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL VIII &#8211; FUNGSI</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:10pt;"><font face="Times New Roman"><span>                                                                                                                                       </span></font></span></b></div>
<p><b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></b><b><u><span><font face="Times New Roman">Fungsi untuk memotong-motong program </font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Ingat kembali program untuk menghitung rerata pada modul VI. Kita dapat memotong-motong program tersebut menggunakan fungsi sehingga mudah dipelajari. Jalankan program tersebut, lalu ubah dan tambahkan perhitungan standar deviasi <i><sup>(<span><span>1</span></span>)</sup></i>.</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">int N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">float jumlah, rerata, data[100];</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Masukkan_Data() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Banyaknya nilai = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cin &gt;&gt; N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; &#8220;Nilai ke-&#8221; &lt;&lt; (i+1) &lt;&lt; &#8221; = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cin &gt;&gt; data[i];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Hitung_Rerata() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>jumlah = 0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>jumlah = jumlah+data[i];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>rerata = jumlah/N;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Tampilkan_Hasil() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Jumlah = &#8221; &lt;&lt; jumlah &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Rerata = &#8221; &lt;&lt; rerata &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Masukkan_Data();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Hitung_Rerata();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Tampilkan_Hasil();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><b><u><span><span style="text-decoration:none;"><font face="Times New Roman"> </font></span></span></u></b><b><u><span><span style="text-decoration:none;"><font face="Times New Roman"> </font></span></span></u></b><b><u><span><font face="Times New Roman">Fungsi untuk mengisi dan menampilkan matriks </font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Program berikut sama dengan program pada modul VII, namun instruksi untuk mengisi dan menampilkan matriks dijadikan fungsi yang dipanggil pada main program.</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">int N = 2;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void MengisiMatriks(float X[5][5])</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>for (int j=0; j&lt;N; j++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt;&#8221;elemen &#8220;&lt;&lt; i &lt;&lt; &#8220;,&#8221; &lt;&lt; j &lt;&lt; &#8221; = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span><span>  </span>cin &gt;&gt; X[i][j];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void MenampilkanMatriks(float X[5][5])</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;N; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>for (int j=0; j&lt;N; j++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>cout &lt;&lt; &#8220;\t&#8221; &lt;&lt; X[i][j];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>float A[5][5];</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Masukkan elemen matriks A\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>MengisiMatriks(A);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Matriks A = \n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>MenampilkanMatriks(A);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Selanjutnya, modifikasilah program di atas untuk dapat mengisi dan menampilkan matriks B dengan ukuran yang sama, serta matriks C yang merupakan penjumlahan antara A dan B <i><sup>(<span><span>2</span></span>)</sup></i>.</font></span></p>
<p><b><u><span><span style="text-decoration:none;"><font face="Times New Roman"> </font></span></span></u></b><font face="Times New Roman"><b><u><span>Fungsi dengan nilai kembalian (<i>return value</i>) : Bisection</span></u></b><span style="font-family:'Courier New';"></span></font><span style="font-size:10pt;"><font face="Times New Roman"> </font></span><font face="Times New Roman"><span>Review kembali program bisection pada Modul V. Modifikasi program tersebut dengan menggunakan fungsi, yaitu dengan menambahkan fungsi berikut sebelum main(). </span><span style="font-family:'Courier New';"></span></font><span style="font-family:'Courier New';"> </span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">double y(double x)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>return x*x-2*x-3;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Kemudian gantilah instruksi yang digunakan untuk mengitung nilai-nilai yL, yC, dan, yU menjadi berikut ini: </font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>yL = y(xL);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>yC = y(xC);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>yU = y(xU);</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan dan periksa hasilnya. Apabila program tersebut digunakan untuk persamaan yang lain yaitu <b>exp(x) ‑ 2*x ‑ 2 = 0</b>, apakah yang harus diubah dalam program tersebut <i><sup>(<span><span>3</span></span>)</sup></i>? (akar persamaan tersebut kira-kira adalah = 1.67835).</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"> </font></span><font face="Times New Roman"><b><u><span>Program konversi suhu</span></u></b><u><span></span></u></font><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Berikut ini adalah program untuk mengkonversi suhu dalam Celcius ke Fahrenheit menggunakan fungsi.</font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">float Suhu_C, Suhu_F;<span>         </span><span>  </span><span>            </span>// definisikan variabel</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">float C_ke_F(float C) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>float F;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>F = 1.8*C+32.0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>return F;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Mengisi_Input() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Isikan nilai Suhu C = &#8220;; <span>   </span>// tampilkan tulisan</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cin &gt;&gt; Suhu_C;<span>                       </span>// isikan nilai Suhu C</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Mengkonversi() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Suhu_F = C_ke_F(Suhu_C);<span>         </span><span>    </span>// hitung nilai Suhu F</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Menampilkan_Hasil() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Temperatur &#8221; &lt;&lt; Suhu_C &lt;&lt; &#8221; C = &#8221; </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; Suhu_F &lt;&lt; &#8221; F&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main() {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Mengisi_Input();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Mengkonversi();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Menampilkan_Hasil();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-size:8pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan program di atas dan lihat hasilnya. Pindahkan keempat fungsi yang ada ke bagian bawah setelah akhir dari program utama main() lalu kompilelah. Error apa yang muncul?<sup>(<i><span><span>4</span></span></i>)</sup><span>  </span>Lalu tambahkan pendefinisian keempat fungsi tadi di atas main():</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>float C_ke_F(float C);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>void Mengisi_Input();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>void Mengkonversi();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>void Menampilkan_Hasil();</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Jalankan dan jelaskan apa guna definisi fungsi tersebut<sup>(<i><span><span>5</span></span></i>)</sup>. </font></span></p>
<p><span style="font-size:10pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk menghitung konversi suhu dari C ke F atau R dan sebaliknya. Program dimulai dengan menampilkan pilihan (menu) sebagai berikut:</font></span></p>
<p><span style="font-size:8pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Pilih konversi berikut:<span>  </span></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>A. Celcius ke Fahrenheit</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>B. Fahrenheit ke Celcius</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>C. Celcius ke Reamur</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>D. Reamur ke Celsius</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>E. Fahrenheit ke Reamur</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>F. Reamur ke Fahrenheit</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>X. Selesai</font></span></p>
<p><span style="font-size:8pt;"><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Setelah dipilih, lalu mengisikan suhu yang akan dikonversi, kemudian program melakukan perhitungan konversi sesuai dengan yang dipilih dan menampilkan hasilnya. Gunakan struktur pemrograman fungsi untuk masing-masing jenis konversi <i><sup>(<span><span>6</span></span>)</sup></i>. </font></span></p>
<p><span><font face="Times New Roman"></font></span><b><span style="font-size:14pt;font-family:'Times New Roman';"><br />
</span></b> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER </font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL IX &#8211; FUNGSI</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:10pt;"><font face="Times New Roman"><span>                                                                                                                                       </span></font></span></b></div>
<p><b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></b><b><u><span><font face="Times New Roman">Sekup variabel di dalam fungsi</font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">int X = 10;</font></span></p>
<p><span style="font-size:10pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void SebuahFungsi()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Di dalam fungsi, X = &#8220;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; X &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-size:10pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Di dalam program utama, X = &#8220;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; X &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>SebuahFungsi();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Keluar ke program utama lagi, X = &#8220;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; X &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="text-indent:-27pt;margin:0 0 0 27pt;" class="MsoNormal"><span><font face="Times New Roman">(a)<span>  </span><span>   </span>Jalankan program di atas dan perhatikan hasilnya. Tambahkan sebaris di atas </font></span><span style="font-family:'Courier New';">cout</span><span><font face="Times New Roman"> dalam </font></span><span style="font-family:'Courier New';">SebuahFungsi</span><span><font face="Times New Roman"> dengan:</font></span></p>
<p><span><font face="Times New Roman">(b)<span>  </span><span>   </span></font></span><span style="font-family:'Courier New';">X = 20;</span><span><font face="Times New Roman">(c)<span>   </span><span>  </span></font></span><span style="font-family:'Courier New';">int X = 20;</span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apakah yang terjadi pada X untuk ketiga kasus tersebut <i><sup>(<span><span>1</span></span>)</sup></i> (kasus a, b, dan c)<span>  </span></font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Pelewatan parameter pada pemanggilan fungsi</font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span style="font-size:10pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Gandakan(int A, int *B, int &amp;C)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>A = A*2;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>*B = *B*2;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>C = C*2;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-size:10pt;"><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int X = 1, Y = 10, Z = 6;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Sebelum fungsi Gandakan dipanggil\n&#8221;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; &#8220;X = &#8221; &lt;&lt; X &lt;&lt; endl</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; &#8220;Y = &#8221; &lt;&lt; Y &lt;&lt; endl</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; &#8220;Z = &#8221; &lt;&lt; Z &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Gandakan(X, &amp;Y, Z);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Setelah fungsi Gandakan dipanggil\n&#8221;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; &#8220;X = &#8221; &lt;&lt; X &lt;&lt; endl</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; &#8220;Y = &#8221; &lt;&lt; Y &lt;&lt; endl</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>&lt;&lt; &#8220;Z = &#8221; &lt;&lt; Z &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Variabel manakah yang akan diubah nilainya ketika dijadikan parameter yang dilewatkan pada fungsi </font></span><span style="font-family:'Courier New';">Gandakan</span><span><font face="Times New Roman"> <i><sup>(<span><span>2</span></span>)</sup></i>.<span>  </span></font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Overloading, pendefinisian fungsi dengan nama sama</font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">float HitungLuas(float R);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>return 3.14159*R*R;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">float HitungLuas(float P, float L)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>return float P*L;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>float Radius, Luas, Panjang, Lebar;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Radius lingkaran = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cin &gt;&gt; Radius;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Panjang segiempat = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cin &gt;&gt; Panjang;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Lebar segiempat = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cin &gt;&gt; Lebar;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Luas = HitungLuas(Radius);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Luas lingkaran = &#8221; &lt;&lt; Luas &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Luas = HitungLuas(Panjang, Lebar);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Luas segiempat = &#8221; &lt;&lt; Luas &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apakah yang menyebabkan terjadinya error pada program di atas? <i><sup>(<span><span>3</span></span>)</sup></i>.<span>  </span>Perbaikilah. Mengapa tidak terjadi error ketika 2 buah fungsi menggunakan nama yang sama?<i><sup> (<span><span>4</span></span>)</sup></i>.</font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Nilai default pada parameter fungsi</font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Keterangan(int N : 10)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>if (N &gt;= 8)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; &#8220;Nilai &#8221; &lt;&lt; N &lt;&lt; &#8221; itu bagus\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>else if (N &lt; 5)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; &#8220;Nilai &#8221; &lt;&lt; N &lt;&lt; &#8221; itu parah\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>else</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; &#8220;Nilai &#8221; &lt;&lt; N &lt;&lt; &#8221; itu cukupan\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int Nilai;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Keterangan();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Masukkan nilai = &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cin &gt;&gt; Nilai;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Keterangan(Nilai);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Apakah yang menyebabkan terjadinya error pada program di atas? <i><sup>(<span><span>5</span></span>)</sup></i>.<span>  </span>Perbaikilah. Mengapa tidak terjadi error ketika fungsi di atas dipanggil<span>  </span>tanpa mengisikan parameternya?<i><sup> (<span><span>6</span></span>)</sup></i></font></span></p>
<p><span><font face="Times New Roman"> </font></span><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Fungsi penukaran dua buah variabel</font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Tukarkan(int Angka1, int Angka2)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int temp = Angka1;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Angka1 = Angka2;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Angka2 = temp;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int X = 1, Y = 99;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Sebelum ditukarkan&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;\nX = &#8221; &lt;&lt; X &lt;&lt; &#8220;, Y = &#8221; &lt;&lt; Y;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Tukarkan(X, Y);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;\nSetelah ditukarkan&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;\nX = &#8221; &lt;&lt; X &lt;&lt; &#8220;, Y = &#8221; &lt;&lt; Y;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Mengapa nilai X dan Y tidak bertukaran pada program di atas, dan bagaimana cara memperbaikinya <i><sup>(<span><span>7</span></span>)</sup></i>. Cobalah program sorting di bawah ini, dengan masih menggunakan fungsi </font></span><span style="font-family:'Courier New';">Tukarkan</span><span><font face="Times New Roman"> di atas.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">void Cetak(int D[])</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;6; i++)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; D[i] &lt;&lt; &#8221; &#8220;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int Data[6] = {10, 3, 5, 20, 15, 7};</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Sebelum disortir:\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>Cetak(Data);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>cout &lt;&lt; &#8220;Proses sortir:\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;5; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>for (int j=4; j&gt;=i; j&#8211;) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>if (Data[j+1] &lt; Data[j])</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>Tukarkan(Data[j], Data[j+1]);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>Cetak(Data);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>cout &lt;&lt; &#8220;&#8212;&#8211;\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span style="font-family:'Courier New';"></span><b><span style="font-size:14pt;font-family:'Times New Roman';"><br />
</span></b> </p>
<p><b><span style="font-size:14pt;"><font face="Times New Roman">LATIHAN PEMROGRAMAN KOMPUTER </font></span></b><b><span style="font-size:14pt;"><font face="Times New Roman">MODUL X &#8211; FILE &amp; GRAFIK</font></span></b></p>
<div style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:windowtext 1.5pt double;padding:0 0 1pt;"><b><span style="font-size:10pt;"><font face="Times New Roman"><span>                                                                                                                                       </span></font></span></b></div>
<p><b><span style="font-size:10pt;"><font face="Times New Roman"> </font></span></b><b><u><span><font face="Times New Roman">Menulis ke file teks</font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;string.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char namafileoutput[] = &#8220;filesaya.txt&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char teks[80];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>FILE *fout;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>fout = fopen(namafileoutput, &#8220;w&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Ketikkan teks yang akan ditulis &#8220;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>        </span>&lt;&lt; &#8220;ke file, akhiri dengan END\n&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>while (1) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>gets(teks);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>if (strcmp(teks,&#8221;END&#8221;) == 0)</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>break;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>strcat(teks,&#8221;\n&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>fputs(teks, fout);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>fclose(fout);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Selesai&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><span><font face="Times New Roman"> </font></span><b><u><span><font face="Times New Roman">Membaca dari file teks</font></span></u></b><span style="font-size:8pt;"><font face="Times New Roman"> </font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;string.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;iostream.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char namafileinput[] = &#8220;filesaya.txt&#8221;;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>char teks[80];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>FILE *fin;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>fin = fopen(namafileinput, &#8220;rt&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Isi file &#8221; &lt;&lt; namafileinput &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>while (1) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>if (fgets(teks, 80, fin)==NULL) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>       </span>break;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>     </span>cout &lt;&lt; teks;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>fclose(fin);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>   </span>cout &lt;&lt; &#8220;Selesai&#8221; &lt;&lt; endl;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">}</font></span></p>
<p><b><u><span><font face="Times New Roman">Menampilkan grafik batang</font></span></u></b><span style="font-family:'Courier New';"> </span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Program berikut ini menampilkan grafik batang dari data yang ada. Untuk pilihan-pilihan huruf, warna, fill style, dan lain-lain lihat dalam file c:\bc5\include\graphics.h</font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">Perhatian: untuk dapat menggunakan perintah-perintah yang berhubungan dengan grafik dari Borland Graphics Interface, pada saat membuat project, pilihlah Target Type: Application [*.exe], Platform: DOS (Standard), Libraries: BGI. </font></span></p>
<p><span style="font-family:'Courier New';"></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;stdio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;conio.h&gt;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">#include &lt;graphics.h&gt;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">main()</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">{</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>char s[5];</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int data[] = {10,12,15,20,8,5,18,25,20,10};</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>int grDriver = DETECT, grMode, grErr;</font></span></p>
<p><span><font face="Courier New"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>initgraph(&amp;grDriver, &amp;grMode, &#8220;C:\\TC\\BGI&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>grErr = graphresult();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>if (grErr != grOk) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>printf(&#8220;BGI error: %s\n&#8221;,</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>grapherrormsg(grErr));</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>return grErr;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>unsigned xMax = getmaxx();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>unsigned yMax = getmaxy();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>setfillstyle(SOLID_FILL, WHITE);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>bar(0, 0, xMax, yMax);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>setcolor(GREEN);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>ellipse(250, 80, 0, 360, 100, 30);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>setcolor(BLUE);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>settextstyle(SANS_SERIF_FONT, HORIZ_DIR, 2);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>outtextxy(180, 60, &#8220;Grafik batang&#8221;);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>setcolor(RED);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>line(50, yMax-50, xMax-50, yMax-50);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>line(50, 50, 50, yMax-50);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>setcolor(BLACK);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>settextstyle(DEFAULT_FONT, VERT_DIR, 1);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (int i=0; i&lt;=30; i=i+5) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>sprintf(s, &#8220;%d&#8221;, i);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>outtextxy(40, yMax-55-10*i, s);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>for (i=0; i&lt;10; i++) {</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>sprintf(s, &#8220;%d&#8221;, i);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>outtextxy(50*(i+1)+25, yMax-40, s);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>setfillstyle(SOLID_FILL, i);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>    </span>bar(50*(i+1), yMax-50, 50*(i+2),</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>      </span>yMax-50-10*data[i]);</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>getch();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>closegraph();</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>return 0;</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span>  </span>}</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">(<i><sup><span><span>1</span></span></sup></i>) Berikan tampilan grafik hasilnya di layar.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="text-align:justify;margin:0;" class="MsoNormal"><span><font face="Times New Roman">(<i><sup><span><span>2</span></span></sup></i>) Buatlah menggunakan Notepad atau editor teks lainnya, file yang bernama TKF1220.TXT di direktori tempat program yang akan dibuat berada. File tersebut berisi data nilai untuk matakuliah TKF1220. Isi file tersebut dimulai dengan banyaknya mahasiswa yang mengambil kuliah tersebut (pada contoh di bawah adalah 20 orang), serta diikuti secara berselang-seling pasangan 3 baris yang memuat NIM (nomor induk mahasiswa), nama mahasiswa, dan nilainya. Berikut adalah potongan isi file tersebut:</font></span></p>
<p><span style="font-size:6pt;font-family:Arial;"></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">20</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">14629</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Nuansha Thufaila</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">95</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">14633</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Kartika Firdausy</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">82</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">17245</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Sonja Novia Rachma</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">86</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">&#8230;</font></span><span style="font-family:'Times New Roman';"><span>  </span><span>                                                                 </span>(dst sampai sebanyak 20 mahasiswa)</span></p>
<p><span style="font-size:6pt;font-family:Arial;"> </span><span><font face="Times New Roman"> </font></span></p>
<p style="text-align:justify;margin:0;" class="MsoNormal"><span><font face="Times New Roman">Buatlah program untuk membaca isi file tersebut dan menghitung rata-rata nilai seluruh mahasiswa. Tampilan yang diharapkan:</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Nilai mata kuliah TKF1220:</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span> </span>1. Nuansha Thufaila<span>               </span>95</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span> </span>2. Kartika Firdausy<span>               </span>82</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New"><span> </span>3. Sonja Novia Rachma<span>             </span>86</font></span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">&#8230;</font></span><span style="font-family:'Times New Roman';"><span>  </span><span>                                                                 </span>(dst sampai sebanyak 20 mahasiswa)</span></p>
<p style="margin:0 0 0 1cm;" class="code"><span><font face="Courier New">Nilai rata-tata = 87.4</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<p style="margin:0;" class="MsoNormal"><span><font face="Times New Roman">(<i><sup><span><span>3</span></span></sup></i>) Tambahkan program untuk menampilkan grafik batang dengan sumbu horisontal (x) adalah nomor absen (urut 1, 2, 3, dst sesuai dengan urutan data pada file) dan sumbu vertikal (y) adalah nilai. Kemudian beri garis horisontal terputus-putus sepanjang sumbu x pada ketinggian y = nilai rata-rata.</font></span></p>
<p><span><font face="Times New Roman"></font></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ygfree.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ygfree.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ygfree.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ygfree.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ygfree.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ygfree.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ygfree.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ygfree.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ygfree.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ygfree.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ygfree.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ygfree.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ygfree.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ygfree.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ygfree.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ygfree.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ygfree.wordpress.com&amp;blog=2980539&amp;post=1&amp;subd=ygfree&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ygfree.wordpress.com/2008/02/25/free-for-u/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7f943e62544133d49b475b9151f581a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">ygfree</media:title>
		</media:content>
	</item>
	</channel>
</rss>
