<?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/"
	>

<channel>
	<title>OdyDasa &#187; Keminter</title>
	<atom:link href="http://blog.odydasa.web.id/category/keminter/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.odydasa.web.id</link>
	<description>berbaring, tertidur, bertelur</description>
	<lastBuildDate>Thu, 23 Jun 2011 05:48:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Infrastruktur Internet di Indonesia</title>
		<link>http://blog.odydasa.web.id/2010/10/14/infrastruktur-internet-di-indonesia/</link>
		<comments>http://blog.odydasa.web.id/2010/10/14/infrastruktur-internet-di-indonesia/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 12:45:03 +0000</pubDate>
		<dc:creator>odydasa</dc:creator>
				<category><![CDATA[BisTel]]></category>
		<category><![CDATA[ICT]]></category>
		<category><![CDATA[ICT Policy]]></category>
		<category><![CDATA[Keminter]]></category>
		<category><![CDATA[Telecom]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[application provider]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[blokir situs]]></category>
		<category><![CDATA[cdma]]></category>
		<category><![CDATA[content provider]]></category>
		<category><![CDATA[dynamic html]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[frekuensi]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[i-banking]]></category>
		<category><![CDATA[indonesia]]></category>
		<category><![CDATA[industri kreatif]]></category>
		<category><![CDATA[infrastruktur]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[internet service provider]]></category>
		<category><![CDATA[ip pbx]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[kebijakan]]></category>
		<category><![CDATA[lisensi]]></category>
		<category><![CDATA[lte]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[operator]]></category>
		<category><![CDATA[orbit]]></category>
		<category><![CDATA[pcb]]></category>
		<category><![CDATA[penyedia aplikasi]]></category>
		<category><![CDATA[penyedia hardware]]></category>
		<category><![CDATA[penyedia jaringan]]></category>
		<category><![CDATA[penyedia konten]]></category>
		<category><![CDATA[penyedia layanan]]></category>
		<category><![CDATA[penyedia software]]></category>
		<category><![CDATA[perlindungan transaksi]]></category>
		<category><![CDATA[provider]]></category>
		<category><![CDATA[regulasi]]></category>
		<category><![CDATA[ring palapa]]></category>
		<category><![CDATA[RPM konten]]></category>
		<category><![CDATA[satelit]]></category>
		<category><![CDATA[service provider]]></category>
		<category><![CDATA[sistem informasi]]></category>
		<category><![CDATA[software house]]></category>
		<category><![CDATA[spektrum radio]]></category>
		<category><![CDATA[suplier]]></category>
		<category><![CDATA[sweeping]]></category>
		<category><![CDATA[teknologi informasi]]></category>
		<category><![CDATA[telekomunikasi]]></category>
		<category><![CDATA[undang-undang]]></category>
		<category><![CDATA[uu ITE]]></category>
		<category><![CDATA[uu telekomunikasi]]></category>
		<category><![CDATA[vendoor]]></category>
		<category><![CDATA[voip]]></category>
		<category><![CDATA[wavelan]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[wimax]]></category>
		<category><![CDATA[wireless lan]]></category>
		<category><![CDATA[wlan]]></category>

		<guid isPermaLink="false">http://blog.odydasa.web.id/?p=116</guid>
		<description><![CDATA[Kalau kita lihat sektor telekomunikasi, *teknologi* informasi, maupun *sistem* informasi (nah, ada sistem dan ada teknologinya, apa perbedaannya?), termasuk internet di dalamnya (terutama arsitektur dan aplikasinya), terdapat beberapa area yang saling terkait, yaitu dalam hal penyediaan jaringan, penyediaan jasa/ layanan, penyediaan aplikasi, dan vendor/ suplier (baik software maupun hardware): Penyediaan jaringan Biasanya oleh operator telekomunikasi, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.odydasa.web.id/wp-content/uploads/2010/10/ar123506242611053.jpg"></a>Kalau kita lihat sektor telekomunikasi, *teknologi* informasi, maupun *sistem* informasi (nah, ada sistem dan ada teknologinya, apa perbedaannya?), termasuk internet di dalamnya (terutama arsitektur dan aplikasinya), terdapat beberapa area yang saling terkait, yaitu dalam hal penyediaan jaringan, penyediaan jasa/ layanan, penyediaan aplikasi, dan <em>vendor</em>/ suplier (baik <em>software</em> maupun <em>hardware</em>):</p>
<ul>
<li style="list-style: none"></li>
<li>Penyediaan jaringan<br />
Biasanya oleh operator telekomunikasi, oleh yang punya satelit, oleh yang punya FO (fiber optik, serat optik), oleh yang punya <em>backbone</em>, dan lain-lain.<br />
Kebanyakan penyedia jaringan juga menjadi penyedia layanan.</li>
<li>Penyediaan layanan<br />
ISP sebagai penyedia jasa internet. Operator telekomunikasi menyediakan layanan telepon (lokal, interlokal, internasional).</li>
<li>Penyediaan aplikasi<br />
Aplikasi, seperti misalkan Google Apps,Â  WordPress, disediakan untuk pengguna/ <em>client</em> (termasuk yang berbayar). Aplikasi di balik detik.com disediakan pula oleh penyedia semacam ini, sedangkan konten berita diisi oleh pengelola detik.com.</li>
<li>Penyediaan konten<br />
Sub sektor ini yang semakin marak, ditunjang berkembangnya sektor industri kreatif, baik dalam hal konten informasi, konten multimedia,</li>
<li>Penyediaan hardware &amp; software &#8211;&gt; <em>vendor</em>, suplier.</li>
</ul>
<p><span id="more-116"></span>
<p>(*catatan: pembagian sektor maupun subsektor bukan berdasar pembakuan)</p>
<p>Kemudian, ketika kita bicara tentang internet, mulai dari kualitas &amp; kuantitas akses, aplikasi, konten, dan sebagainya, tentu semua <em>provider</em> di atas adalah pemangku kepentingannya.<br />
Infrastruktur? Tentu semua aspek pada kesemua jenis penyedia di atas memiliki infrastruktur yang harus dikembangkan.</p>
<p><strong>Jaringan</strong></p>
<p><em>Wireless</em>, yang memang favorit di <em>end user</em> genit macam di sini, tentu tidak bisa mengalahkan koneksi optik yg berorde tera bps, yang, macam di Australia, akses sampai ke rumah pun hendak di-&#8221;optik&#8221;-kan (FTTH, FTTB, FTTZ, FTTx, dll). Data berbasis multimedia untuk ditransfer hingga rumah pun akan menjadi sangat berlimpah. Tentu, pertukaran data berbasis optik lebih <em>realtime</em> dibandingkan dengan satelit.</p>
<p>IPTV yang menjanjikan kemudahan seperti kita menyetel TV konvensional dan dengan kualitas setara HDTV, mensyaratkan sekitar 10 Mbps laju koneksi per kanal siaran. Dengan 3 TV yang menyala paralel di rumah, pengguna pada masing-masing TV suka gonta-ganti kanal siaran, tentu dibutuhkan laju lebih dari 30 Mbps. Jelas, kebutuhan laju koneksi ini bukanlah jenis koneksi &#8220;up to&#8221; sebagaimana yang banyak ISP dan operator <em>mobile phone</em> suka menawarkan. Itu adalah kebutuhan &#8220;start from&#8221;.</p>
<p>Namun, jaringan akses optik (ke pelanggan) dengan jaringan <em>backbone</em> yang seadanya, seperti membayangkan PDAM memasang pipa berdiameter 1 m di semua rumah, yang tersambung dengan pipa utama ke sumber air dengan diameter 10cm.</p>
<p>Jadi, apapun kondisi dan tantangannya (baca: hambatannya), tanpa proyek Ring Palapa, ya, kita hanya bisa <em>ngaplo bin ndlongop</em> aja. Sesukses apapun Wimax ataupun LTE, tanpa optik penghubung antar <em>tower</em>-nya, <em>ya sami mawon</em>.</p>
<p><strong>Regulasi-Kebijakan dan Etika Penyelenggaraan Jasa</strong></p>
<p>UU Telekomunikasi mengatur penyelenggaraan telekomunikasi (dalam penyelenggaraan jaringan, jasa, dan telekomunikasi khusus), siapa saja yang diperbolehkan, anti-monopoli, hak dan kewajiban, termasuk masalah interkoneksi, penomoran, pentarifan, pengamanan, hingga masalah perangkat, spektrum radio, dan orbit satelit.</p>
<p>Indonesia sebagai negara kepulauan yang terletak di khatulistiwa di antara 2 benua dan 2 samudera, apa keistimewaannya? Ipoleksosbudhankamnas menjawabnya.</p>
<p>Namun, ketika kita melihat orbit satelit, maka angkasa khatulistiwa adalah tempat favorit orbitnya. Kemudian, ketika peluncuran satelit yang mensyaratkan terletak di pinggir laut (jika gagal meluncur maka diset agar jatuh ke laut dan bukan ke daerah perumahan) dan di suatu pulau (agar akses penyusupan terbatasi), maka daerah kepulauan juga favorit. Akses dengan bandara internasional? Tentu itu dibutuhkan, dan tanpa membuat baru, ada beberapa tempat di negeri ini yang bisa dikembangkan. Biak dan Enggano adalah titik luncur yang posisinya tidak akan kalah dengan yang di luar negeri sana. Sayangnya, kita tidak bisa mengatur satelit milik siapa saja yang diperbolehkan di angkasa nusantara, karena sudah kita terikat dengan pengaturan oleh lembaga internasional macam ITU. Nah, <em>tuh</em> di atas Sulawesi beredar satelit milik siapa?</p>
<p>Penggunaan frekuensi (spektrum radio) pun perlu pertarungan antara masyarakat dan pemerintah untuk bisa menggunakan spektrum tertentu yang tanpa perlu mendapat lisensi. Jika di komunikasi radio konvensional dikenal adanya CB, citizen band, rentang spektrum frekuensi yang bisa digunakan oleh masyarakat tanpa lisensi, maka di komunikasi radio digital pun dikehendaki pada slot sekitar 2 GHz dapat digunakan tanpa lisensi.</p>
<p>Kenapa 2 GHz? Perlu diperhatikan karakteristik propagasi gelombang radio, misalkan dalam hal scattering, pemantulan, dan sebagainya, yang berbeda-beda pada berbagai frekuensi. Yang pasti, jika slot tersebut handal, maka militer dan para ilmuwan akan mempertahankannya agar jangan dipakai oleh umum.</p>
<p>Sistem berbasis radio rentan gangguan interferensi dari frekuensi yang berdekatan. Sistem sel (sebagaimana di tower telepon selular) mengatur penggunaan frekuensi agar tidak saling berinterferensi. Pada sistem berbasis spektral tersebar (<em>spread-spectrum</em>) semacam CDMA maupun WiFi, sinyal lain dianggap sebagai gangguan (<em>noise</em>), dan semakin besar gangguan maka kualitas komunikasi menjadi semakin buruk. Dapat diibaratkan dalam 1 ruang bersama, misalkan kantin, orang dapat berkelompok dan melakukan pembicaraan terpisah tanpa saling mengganggu terhadap kelompok lain. Namun, ketika ada satu orang berteriak, tentu akan mengganggu yang lain. Ketika semua berteriak, nah, itulah <em>chaos</em>.</p>
<p>Dengan pembagian <em>channel</em> pada tiap pemancar yang tidak ada yang mengatur, semaunya sendiri, daya pancar setiap <em>transmitter</em> pada <em>access point</em> yang adu besar, maka itulah <em>chaos</em> pada WiFi yang ada di sini. Semua adu teriak, membesarkan volume (daya) pancaran. Tidak ada yang mengatur siapa di mana menggunakan <em>channel</em> frekuensi berapa. Perangkat yang tidak memenuhi standardisasi yang disyaratkan, tentu akan membuat pengguna menjadi <em>jor-joran</em> dalam daya pancar, dengan spektrum yang bocor di sana sini dan mengganggu spektrum lainnya. Dan bagi yang lain, itu adalah <em>noise</em> yang membuat kualitas komunikasi yang diukur dalam SNR menjadi semakin kecil.</p>
<p>Bukan adu teriak, seharusnya, melainkan adu berbisik. Dengan daya seminimal mungkin, dengan optimasi pada pembagian kanal frekuensi, rekayasa pada polarisasi dan <em>beam</em> antena, tentu akan jadi jalan keluar yang membahagiakan. Komunikasi lancar semacam yang terjadi pada kelompok-kelompok terpisah pada kantin yang sama.</p>
<p>WaveLAN, WirelessLAN, maupun WiFi adalah bahasa prokem untuk mengistilahkan teknologi yang sama. Perhatikan bahwa di situ ada terminologi LAN yang digunakan, local area network, yang berarti pada dasarnya teknologi ini dikembangkan untuk melayani komunikasi dalam area lokal, LAN. Kreativitas kita yang tinggi membuat teknologi LAN ini dijadikan <em>backbone</em> untuk komunikasi antar-kota. Salah kah? Tidak ada yang salah dan benar dalam teknologi, yang ada adalah untuk setiap pemakaian selalu ada konsekuensinya. WLAN tidak dirancang untuk modulasi yang <em>robust</em> untuk jarak yang jauh.</p>
<p>Regulasi teknologi, pengaturan dalam lisensi juga jadi titik kritis. Alih-alih izin penyelenggaraan, penyedia jasa VoIP justru rentan dibidik untuk dijadikan pelanggar UU Telkomunikasi. <em>Sweeping</em> frekuensi yang dianggap telah digunakan tanpa lisensi juga selalu menjadi momok.</p>
<p>Dalam penyelenggaraan jasa, maka bisnis turut bicara. Persaingan usaha antar-operator, diramaikan dengan masuknya berbagai operator dari luar, baik dengan merek baru maupun dengan mengakuisisi operator lokal, memang diharapkan akan menggairahkan pengguna dengan beragamnya fasilitas yang ditawarkan dan dengan tarif yang menggiurkan. Kita yang sering kali <em>neg</em> dengan layanan &#8220;produk lokal&#8221; dari operator milik bangsa ini, tentu mendukung ramainya persaingan itu. Namun, hati-hati, VOC itu adalah perusahaan, dan dengan sukses menjajah bangsa ini. Mau melawan? Tentu operator milik sendiri yang harus diberdayakan. Masalahnya adalah, kita sebagai pengguna justru tidak dianggap.</p>
<p>Perang dalam peran saling menjajah sudah nampak dalam persaingan tarif yang dibungkus dengan hasutan iklan yang kenes dan juga kasar. Adalah hasutan untuk menerima bahwa tarif dan kualitas yang diberikan laksana di surga. Kasar? Nah, jejeran baliho dari operator yang berbeda yang gambarnya saling menjatuhkan, bukan lagi hal tabu. Tapi bagiku tetap menjijikkan.</p>
<p><strong><em>Application Provider &amp; Vendor</em><br /></strong></p>
<p><em>Software vendor</em> berkembang seiring dengan berkembangnya para <em>entrepreneurs</em> di bidang <em>software house</em>, dan beberapa di antaranya bahkan berani mengembangkan diri sebagai <em>application provider</em> dengan menggunakan <em>software</em> yang mereka bikin sebagai <em>frame work</em> suatu aplikasi yang <em>customable</em>. Pada dunia <em>mobile phone</em>, bisnis dan penyediaan <em>software</em> untuk permainan mapun aplikasi-aplikasi, baik berupa <em>tools</em> maupun yang berkaitan dengan layanan dari operator selular terkait, cukup menjanjikan.</p>
<p><em>Hardware vendor</em> nasibnya masih <em>ngenes</em>, tapi masih banyak yang tetap semangat. Gimana tidak <em>ngenes</em>, mau mengembangkan yang canggih, mau bikin PCB ber-<em>layer</em> banyak macam tumpukan wafer saja, siapa yg mau bikin. Pabrik komponen elektronika, IC, VLSI, dan lain-lain, di mana mereka berada? Mau membuat yang tidak terlalu canggih, jelas patah arang dengan serbuan barang dari Cina dan sekitarnya yang jelas murah meriah dan (relatif) berkualitas. Padahal, perangkat jaringan sebenarnya bisa dikembangkan sendiri, tidak harus semahal (dan sebagus) Cisco, paling tidak kalau bisa menjajarkan diri sebaimana Mikrotik.</p>
<p>Berangkat dari pengalaman sebagai VoIP <em>service provider</em> perjuangan anak bangsa, VoIP Rakyat, pendiri dan developernya mengembangkan <em>hardware</em> untuk IPPBX. Strategi yang digunakan adalah OEM, membeli produk dan mendapat lisensi untuk memberi merek sendiri. Tapi, nampaknya dyang bersangkutan mempertimbangkan ODM, membuat desain dan memiliki merek serta lisensi sendiri, sedangkan pembuatannya dipesankan ke suatu pabrik (tidak bikin sendiri).</p>
<p><strong>Konten</strong></p>
<p>Industri konten (baik informasi maupun presentasinya) begitu berkembang ditunjang oleh menjamurnya industri kreatif. Tentu bukan semacam kreativitas untuk berkreasi menciptakan industri konten porno, yang walaupun juga berkembang, tetapi jelas bukan itu yang diharapkan. Selain dalam industri kreatif, moda bisnis di internet pun berkembang. Belanja <em>online</em> tidak hanya berupa melalui halaman web saja, tetapi digabung dengan tampilan 3D interaktif seperti halnya dalam game, atau bahkan digabung dengan <em>virtual reality</em>, yang tentunya membutuhkan dukungan aplikasi dan konten yang kaya.</p>
<p>Web pun mengalami perubahan tren yang signifikan, mulai dari konten web yang statis, kemudian konten dinamis yang disesuaikan dengan pengaturan dari si empunya web, dan saat ini hanya disediakan aplikasi web saja. Kontennya? Silakan pengguna yang mengisi (atau mencari) sendiri berdasar kebutuhan sendiri. Tren para kaum sosialis melalui media sosial menunjukkan pergeseran tersebut. Aplikasi yang memfasilitasi pengguna untuk berbagi konten (baik foto narsis, pemikiran mendalam hingga komentar yang tidak bermutu) adalah ruh yang diangkat, dan menjadi versi kedua dari web, Web 2.0. Teknologi tentu berpengaruh, karena tanpa dynamic HTML, AJAX, dan nantinya ada HTML 5, serta laju koneksi menjadi penentu.</p>
<p>Alih-alih mencegah konten porno, tanpa basis pemahaman yang jelas, regulasi malah justru kontraproduktif. Konten informasi yang berkaitan dengan Hankamnas (juga kepentingan umum), tentu perlu pengaturan yang <em>nggenah</em>, yang tidak sekedar blokir konten ini itu, sadap komunikasi ini itu. Keamanan rekening bank adalah hal yang serius, sama seriusnya dengan kemanan yang menjamin privasi dalam berkomunikasi. Jika privasi ini disalahgunakan oleh koruptor? Peng-<em>nggenah</em>-an pengaturan ini yang harus jadi jawaban.</p>
<p>Penggunaan konten informasi yang bukan haknya dan penggunaan komunikasi yang mengancam kepentingan umum, harusnya bisa dijawab oleh UU-ITE dan Permen Konten. Bagaimana pengaturannya? Yang bisa saya jawab adalah, jika suatu urusan tidak diberikan kepada ahlinya, maka tunggulah kehancurannya.</p>
<p>UU-ITE harusnya melindungi nasabah dari pencurian uang melalui ATM, dari kesalahan (kelemahan) bank dalam transaksi yang merugikan nasabah, perampok cyber semacam di filem Golden Eyes, penyalahgunaan data nasabah oleh pihak lain, mulai dari penawaran oleh pihak yang tidak jelas berupa kartu kredit, asuransi, dan sebagainya, hingga pembobolan rekening melalui pemalsuan kartu kredit, perlindungan pada transaksi <em>e-commerce</em> mapun <em>i-banking</em> (BI hendaknya punya regulasi yang baik yang harus dipatuhi oleh semua penyelenggara <em>i-banking</em>), dan sebagainya.</p>
<p>Regulasi mengenai konten pun tidak bisa serta merta selesai dengan membuat daftar pemblokiran situs. Pengelolaan konten nantinya juga tidak lepas dari permasalahan teknis, termasuk hingga ke level protokol data. Misalkan bagaiman ketika ada teknologi Direct-to-Home Satellite Services, berupa layanan global yang dapat diakses dari rumah, bisa dilakukan pengaturan konten pada layanannya, mengacu pada hankam dan kepentingan umum tentunya. Negara-negara Eropa seperti Jerman dan Perancis bisa memaksa semua filem Hollywood dan filem di TV di-dubbing dalam bahasa mereka sendiri, dan bukan bahasa Inggris, yang tentu akan berkaitan dengan mekanisme pertahanan diri dalam hal budaya.</p>
<p>Bagaimana menangani hal itu dengan setiap kali hadirnya teknologi baru? Ini tantantangannya. Dan kita memerlukan <em>right man on the right place</em> untuk itu. Bahkan, untuk mengelola konten porno pun, akan konyol jika solusinya hanya berupa daftar URL &amp; pola <em>keyword</em> terlarang. Perlu cara untuk secara otomatis ada aplikasi yang bisa menyaring gambar <em>kinyis-kinyis</em> kah?</p>
<p>Penanganan konten porno, ke depan, akan mengacu ke metoda sebagaimana penanganan <em>malware</em>. Penyaringan berdasar konten akan ditinggalkan, dan digantikan dengan penyaringan berdasar perilaku akses.</p>
<p><strong>Kerangka dalam Pengembangan Infrastruktur</strong></p>
<p>Dari tulisan di atas, infrastruktur yang perlu dikembangkan yang berhubungan dengan internet, akan meliputi semua aspek, tidak hanya jaringan.</p>
<p>Bahkan untuk jaringan pun sesepele menghubungkan tiap kantor kalurahan dengan WiFi, perlu infrastruktur yang strategis, yang membedakan yang mana yang harus dilakukan oleh negara (karena isu strategis dan karena batasan kemampuan), yang mana yang hendaknya diserahkan pengembangannya kepada komunitas, sambil tetap memberdayakan komunitas tersebut untuk dapat meregulasi diri sendiri dengan baik (misalkan contoh kasus WiFi di atas). Diperlukan pengembangan infrastruktur backbone, jaringan akses, hingga interkoneksi yang baik.</p>
<p>Infrastruktur dalam regulasi dan kebijakan diperlukan untuk mempertemukan aspek strategis bagi kepentingan bangsa, bisnis yang beretika, serta perlindungan pengguna untuk dapat menikmati teknologi dengan aman dan tanpa gangguan.</p>
<p>Infrastruktur yang mendukung pengembangan industri hardware dan software, serta bisnis aplikasinya, serta dukungan terhadap industri kreatif, janganlah perhatian untuk itu dialihkan kepada gosip tidak bermutu seputar konflik UU-ITE dan RPM Konten. Kedua regulasi tersebut lebih patut digunakan untuk infrastruktur perlindungan pengguna, seperti di atas, termasuk dalam hal perlindungan terhadap <em>side effect</em> dari suatu teknologi.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odydasa.web.id/2010/10/14/infrastruktur-internet-di-indonesia/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Defrag. Contiguous, dan Booting dari ISO file.</title>
		<link>http://blog.odydasa.web.id/2010/03/16/defrag-contiguous-dan-booting-dari-iso-file/</link>
		<comments>http://blog.odydasa.web.id/2010/03/16/defrag-contiguous-dan-booting-dari-iso-file/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 10:22:39 +0000</pubDate>
		<dc:creator>odydasa</dc:creator>
				<category><![CDATA[Do It Your Self]]></category>
		<category><![CDATA[ICT]]></category>
		<category><![CDATA[Keminter]]></category>
		<category><![CDATA[contig.exe]]></category>
		<category><![CDATA[contiguos]]></category>
		<category><![CDATA[defrag]]></category>
		<category><![CDATA[disk defragmenter]]></category>
		<category><![CDATA[fregamented]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[grub4dos]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ufd]]></category>
		<category><![CDATA[wcontig]]></category>
		<category><![CDATA[windows xp]]></category>

		<guid isPermaLink="false">http://blog.odydasa.web.id/2010/03/16/defrag-contiguous-dan-booting-dari-iso-file/</guid>
		<description><![CDATA[Defrag sekarang baru menjadi hal yang penting di UFD-ku (UFD: USB flash disk). Berawal dari boot from ISO file di UFD (http://blog.odydasa.web.id/2009/11/09/boot-from-iso-file-on-ufd-hd/) untuk ISO Ubuntu melalui Grub, yg membutuhkan file kernel dan intrd image, kemudian ke sembarang ISO file yg &#8220;dijalankan&#8221; melalui chainloader. Ternyata untuk itu file ISO harus contiguous, alias ter-defragmented (data dalam sektor [...]]]></description>
			<content:encoded><![CDATA[<p><img hspace="20" alt="defrag-icon" vspace="20" align="left" src="http://blog.odydasa.web.id/wp-content/uploads/2010/03/defrag-icon.png" width="62" height="62" /><br />
Defrag sekarang baru menjadi hal yang penting di UFD-ku (UFD: USB flash disk). Berawal dari boot from ISO file di UFD (<a href="http://blog.odydasa.web.id/2009/11/09/boot-from-iso-file-on-ufd-hd/">http://blog.odydasa.web.id/2009/11/09/boot-from-iso-file-on-ufd-hd/</a>) untuk ISO Ubuntu melalui Grub, yg membutuhkan file kernel dan intrd image, kemudian ke sembarang ISO file yg &#8220;dijalankan&#8221; melalui chainloader. </p>
<p>Ternyata untuk itu file ISO harus contiguous, alias ter-defragmented (data dalam sektor yg terurut pada hardisk, tidak terpisah-pisah/ fragmented). Ada contig.exe dari Sysinternal (<a href="http://download.sysinternals.com/Files/SysinternalsSuite.zip">http://download.sysinternals.com/Files/SysinternalsSuite.zip</a>). Namun hal itu sia-sia jika kondisi disk tidak terdefrag dengan baik.</p>
<p align="center"><img hspace="20" alt="defrag" vspace="20" src="http://blog.odydasa.web.id/wp-content/uploads/2010/03/defrag.png" width="450" height="328" /></p>
<p>Jadi lah, menjalankan Disk Defragmenter dari Windows XP (yg selama ini gak aku suka). Baru kemudian menjalankan contig lagi.<br />
Versi GUI dari Contig (WContig) bisa diperoleh di: <a href="http://www.mdtzone.it/Files/WContig.zip">http://www.mdtzone.it/Files/WContig.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odydasa.web.id/2010/03/16/defrag-contiguous-dan-booting-dari-iso-file/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Boot from ISO file on UFD/ HD</title>
		<link>http://blog.odydasa.web.id/2009/11/09/boot-from-iso-file-on-ufd-hd/</link>
		<comments>http://blog.odydasa.web.id/2009/11/09/boot-from-iso-file-on-ufd-hd/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 13:01:16 +0000</pubDate>
		<dc:creator>odydasa</dc:creator>
				<category><![CDATA[Do It Your Self]]></category>
		<category><![CDATA[ICT]]></category>
		<category><![CDATA[Keminter]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[bootable]]></category>
		<category><![CDATA[casper]]></category>
		<category><![CDATA[flash disk]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[grldr]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[grub4dos]]></category>
		<category><![CDATA[hardisk]]></category>
		<category><![CDATA[initrd]]></category>
		<category><![CDATA[initrd.lz]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[isocd]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[livecd]]></category>
		<category><![CDATA[menu.lst]]></category>
		<category><![CDATA[ram disk]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ufd]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[vmlinuz]]></category>
		<category><![CDATA[winsetupfromusb]]></category>

		<guid isPermaLink="false">http://blog.odydasa.web.id/2009/11/09/boot-from-iso-file-on-ufd-hd/</guid>
		<description><![CDATA[It&#8217;s quiet long time ago, for having and idea of directly booting an ISO file (CD/ DVD image) of a instaler CD or LiveCD, like Ubuntu CD, instead burn it to the disc or extract the content into UFD (USB flash disk) or hardisk. Now, we can do it using GNU GRUB (&#8220;GRUB&#8221; for short) [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s quiet long time ago, for having and idea of directly booting an ISO file (CD/ DVD image) of a instaler CD or LiveCD, like Ubuntu CD, instead burn it to the disc or extract the content into UFD (USB flash disk) or hardisk. Now, we can do it using GNU GRUB (&#8220;GRUB&#8221; for short) as a boot loader package from the GNU Project (<a href="http://en.wikipedia.org/wiki/GNU_GRUB">http://en.wikipedia.org/wiki/GNU_GRUB</a>).</p>
<p><strong>Main Files: Kernel, RAM disk, ISO file</strong></p>
<p>We will use the files from Linux installer, it&#8217;s kernel and it&#8217;s initial root filesystem (RAM disk or intrd image). This initrd image contains a lot of executables and drivers for mounting the real root filesystem. When real real root filesystem is mountet, the initrd is unounted, then the memory is freed. Both files are named differently in different distros. Find it it Table 1 for the names.</p>
<table border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td colspan="3">Table 1: Names of kernel and RAM disk images in some popular distros</td>
</tr>
<tr>
<td><strong>Distro</strong></td>
<td><strong>Kernel path in CD</strong></td>
<td><strong>RAM disk path in CD</strong></td>
</tr>
<tr>
<td valign="top">Fedora</td>
<td valign="top">/isolinux/vmlinuz</td>
<td valign="top">/isolinux/initrd.img</td>
</tr>
<tr>
<td valign="top">RHEL5/CentOS5</td>
<td valign="top">/isolinux/vmlinuz</td>
<td valign="top">/isolinux/initrd.img</td>
</tr>
<tr>
<td valign="top">openSUSE</td>
<td valign="top">/boot/i386/loader/linux</td>
<td valign="top">/boot/i386/loader/initrd</td>
</tr>
<tr>
<td valign="top">Mandriva</td>
<td valign="top">/i586/isolinux/alt0/vmlinuz</td>
<td valign="top">/i586/isolinux/alt0/all.rdz</td>
</tr>
<tr>
<td valign="top">Ubuntu</td>
<td valign="top">/casper/vmlinuz</td>
<td valign="top">/casper/initrd.gz</td>
</tr>
<tr>
<td valign="top">Debian</td>
<td valign="top">/install.386/vmlinuz</td>
<td valign="top">/isolinux/initrd.img</td>
</tr>
<tr>
<td colspan="3">┬á</td>
</tr>
</tbody>
</table>
<p>Now, here we are, preparing our UFD for booting from ISO file, and make it from Windows. In this case we will use kernel and initrd image from Ubuntu 9.04, and try to boot Ubuntu.<br />
So, we can use:</p>
<ul>
<li>Grub installer.<br />
There are some tools to make it under Windows to make a UFD to be Grub bootable, e.g. grub4dos (<a href="https://sourceforge.net/projects/grub4dos">https://sourceforge.net/projects/grub4dos</a>, <a href="https://gna.org/projects/grub4dos/">https://gna.org/projects/grub4dos/</a> or <a href="http://sarovar.org/projects/grub4dos/">http://sarovar.org/projects/grub4dos/</a>), including WinGrub and grubinst in it.<br />
But, I prefer to use WinSetupFromUSB (<a href="http://www.msfn.org/board/install-usb-winsetupfromusb-gui-t120444.html">http://www.msfn.org/board/install-usb-winsetupfromusb-gui-t120444.html</a>). For advance usage, we even can use this to install multiple boot of several Windows and Linux.</li>
<li>Ubuntu ISO, you can download from any repository you like, e.g.<br />
<a href="http://releases.ubuntu.com/jaunty/ubuntu-9.04-desktop-i386.iso">http://releases.ubuntu.com/jaunty/ubuntu-9.04-desktop-i386.iso</a></li>
<li>Kernel and initrd image files from Ubuntu CD ISO (ubuntu-9.04-desktop-i386.iso)<br />
You can open ISO file with WinRAR.</li>
<li style="LIST-STYLE-TYPE: none">
<ul>
<li>vmlinuz</li>
<li>initrd.gz</li>
</ul>
</li>
</ul>
<p><span id="more-89"></span></p>
<p><strong>Steps</strong></p>
<p>Now, we can start the steps:</p>
<ol>
<li>Prepare the UFD<br />
If necessary, we can format it first. It&#8217;s recommended we use FAT32 format.<br />
<img src="http://blog.odydasa.web.id/wp-content/uploads/2009/11/wingrub-format.gif" alt="wingrub-format" hspace="10" vspace="10" width="225" height="301" /><br />
For advance user, there is a nice tools to do that. Find it in:<br />
<a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;mode=3&amp;taskId=135&amp;swItem=MTX-UNITY-I23839">http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;mode=3&amp;taskId=135&amp;swItem=MTX-UNITY-I23839</a></li>
<li>Make UFD bootable (with Grub)<br />
It will be easier if we use WinSetupFromUSB, but you can try another applications.<br />
<img src="http://blog.odydasa.web.id/wp-content/uploads/2009/11/winsetupfromusb-3.png" alt="winsetupfromusb" hspace="20" vspace="20" width="450" height="467" /><br />
Don&#8217;t touch enything, unless &#8220;USB Disk Selection&#8221;, &#8220;Copy setup boot files only&#8221;, and &#8220;Test in QEMU&#8221;.<br />
After finished, the UFD will be &#8220;Grub-bootable&#8221;, and has these files:<br />
<code><br />
J:\default<br />
J:\grldr</code><br />
Save it into your UFD (e.g. J:\), enter file name with <code>menu.lst</code>, and don&#8217;t forget to change &#8220;Save as type&#8221; into &#8220;All Files&#8221;Type these lines into <code>menu.lst</code> file:<br />
<code>color white/black yellow/black<br />
timeout 5<br />
default /default title Ubuntu<br />
find --set-root --ignore-floppies /ubuntu/vmlinuz<br />
kernel /ubuntu/vmlinuz iso-scan/filename=/ubuntu/ubuntu-9.04-desktop-i386.iso quiet splash boot=casper persistent --<br />
initrd /ubuntu/initrd.gz<br />
boot</code></p>
<p>That code means that Grub will make a boot menu, with 5 seconds of timeout before boot into first menu (with &#8220;Ubuntu&#8221; title). In the &#8220;Ubuntu&#8221; title, Grub will try to find <code>/ubuntu/vmlinuz</code> as root, run <code>vmlinuz</code> to open <code>ubuntu-9.04-desktop-i386.iso</code> ISO file, then open <code>initrd.gz</code> as RAM disk image.Please note that the line in kernel is long line, the next line is initrd.<br />
That code also enabling the persistent Ubuntu (recognize the word &#8220;<code>persistent</code>&#8221; in the kernel line code). But, it requires <code>J:\casper-rw</code> file (it can be made later).</p>
<p>From now on, UFD has these files:<br />
<code>J:\default<br />
J:\grldr<br />
J:\menu.lst<br />
J:\ubuntu\initrd.gz<br />
J:\ubuntu\ubuntu-9.04-desktop-i386.iso</code><br />
<code>J:\ubuntu\initrd.gz</code></li>
<li>Copy ISO file to UFD<br />
Copy the downloaded ISO file (ubuntu-9.04-desktop-i386.iso) into UFD. We can make a folder (e.g. &#8220;boot&#8221; and copy the ISO in it)</li>
<li>Copy 2 files (<code>vmlinuz</code> kernel and <code>initrd.gz</code> initrd image) from ISO into UFD<br />
Open ISO file (ubuntu-9.04-desktop-i386.iso) with WinRAR, copy <code>vmlinuz</code> and <code>initrd.gz</code> from &#8220;Casper&#8221; folder of the ISO.<br />
Copy it in UFD, e.g. in &#8220;ubuntu&#8221; folder.</li>
<li>Make/ edit menu.lst of the Grub<br />
If not exist make <code>menu.lst</code> file in J:\.<br />
We can use Notepad, and save it into the respective name.<br />
<img src="http://blog.odydasa.web.id/wp-content/uploads/2009/11/notepad-1.png" alt="notepad" hspace="20" vspace="20" width="450" height="315" /></li>
<li>Boot for first time<br />
<img src="http://blog.odydasa.web.id/wp-content/uploads/2009/11/grub.png" alt="grub" hspace="20" vspace="20" width="450" height="276" /><br />
<img src="http://blog.odydasa.web.id/wp-content/uploads/2009/11/ubuntu-boot.png" alt="ubuntu-boot" hspace="20" vspace="20" width="450" height="337" /><br />
<img src="http://blog.odydasa.web.id/wp-content/uploads/2009/11/ubuntu-desktop.png" alt="ubuntu-desktop" hspace="20" vspace="20" width="450" height="360" /></li>
<li>Create <code>casper-rw</code> file<br />
If <code>casper-rw</code> file is provided, then we can make ISO-boot Ubuntu persistent.<br />
Don&#8217;t close the 1st booting, we need it to make the <code>casper-rw</code> file.<br />
Open terminal, enter /isodevice<br />
<code>$ cd /isodevice<br />
</code><br />
Create a 512 MB file, named casper-rw.<br />
<code>$ sudo dd if=/dev/zero of=casper-rw bs=1M count=512<br />
</code><br />
Format the casper-rw file<br />
<code>$ sudo mkfs.ext3 -F casper-rw</code></li>
<li>In case, you are not satisfied with the size of casper-rw, and want to resize:<br />
<code>$ sudo dd if=/dev/zero bs=1M count=1024 &gt;&gt; casper-rw<br />
$ sudo resize2fs casper-rw</code></li>
<li>Ready</li>
</ol>
<p><strong>Ubuntu 9.10</strong></p>
<p>As it&#8217;s already mentioned above, the main files are kernel and RAM disk image. Just extract those files from Ubuntu 9.10 ISO file. The files in CD are located on:<br />
<code>/casper/vmlinuz<br />
/casper/initrd.lz</code></p>
<p>Note that the RAM disk image file has extension <code>.lz</code></p>
<p>If you want to save Ubuntu 9.04 and Ubuntu 9.10 (and kernel &amp; RAM disk files) in the same folder, just feel free rename them, and adjust the respective names in the <code>menu.lst</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odydasa.web.id/2009/11/09/boot-from-iso-file-on-ufd-hd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://blog.odydasa.web.id/2009/09/15/hello-world/</link>
		<comments>http://blog.odydasa.web.id/2009/09/15/hello-world/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 17:29:09 +0000</pubDate>
		<dc:creator>odydasa</dc:creator>
				<category><![CDATA[ICT]]></category>
		<category><![CDATA[Keminter]]></category>
		<category><![CDATA[hello world]]></category>
		<category><![CDATA[jokes]]></category>
		<category><![CDATA[language]]></category>

		<guid isPermaLink="false">http://blog.odydasa.web.id/?p=1</guid>
		<description><![CDATA[Hello World ! How the way people code &#8220;Hello World&#8221; varies depending on the programming language: ActionScript ( Macromedia Flash ) trace(’Hello World!’); ASCII 48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21 0D 0A ASP &#60;%Response.Write(&#8220;Hello, World!&#8221;)%&#62; &#60;%=&#8221;Hello, World!&#8221; %&#62; ASP.NET Response.Write(&#8220;Hello, World!&#8221;) Assembly Language DATA SEGMENT MSG DB &#8220;Hello, [...]]]></description>
			<content:encoded><![CDATA[<p><!-- .MyCode { font-family: Courier New;   background: #dbe5f1; } --><strong>Hello World !</strong><br />
How the way people code &#8220;Hello World&#8221; varies depending on the programming language:</p>
<table border="0" cellspacing="5" cellpadding="5">
<tbody>
<tr>
<td valign="top"><strong>ActionScript</strong><strong><br />
( Macromedia Flash</strong><strong> )</strong></td>
<td class="MyCode" valign="top">trace(’Hello World!’);</td>
</tr>
<tr>
<td valign="top"><strong>ASCII</strong></td>
<td class="MyCode" valign="top">48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21 0D 0A</td>
</tr>
<tr>
<td valign="top"><strong>ASP</strong></td>
<td class="MyCode" valign="top">&lt;%Response.Write(&#8220;Hello, World!&#8221;)%&gt;<br />
&lt;%=&#8221;Hello, World!&#8221; %&gt;</td>
</tr>
<tr>
<td valign="top"><strong>ASP.NET</strong></td>
<td class="MyCode" valign="top">Response.Write(&#8220;Hello, World!&#8221;)</td>
</tr>
<tr>
<td valign="top"><strong>Assembly Language</strong></td>
<td class="MyCode" valign="top">DATA SEGMENT<br />
MSG DB &#8220;Hello, World!&#8221;,&#8221;$&#8221;<br />
DATA ENDS<br />
CODE SEGMENT&nbsp;</p>
<p>ASSUME CS:CODE, DS:DATA<br />
START:<br />
MOV AX, DATA ;INTILIZE<br />
MOV DS, AX<br />
MOV AH, 09H ;PRINT STRING<br />
LEA DX, MSG<br />
INT 21H<br />
STOP:</p>
<p>MOV AX, 4C00H ;TERMINATE<br />
INT 21H<br />
CODE ENDS<br />
END START</td>
</tr>
<tr>
<td valign="top"><strong>6502</strong><strong> A ssembler</strong></td>
<td class="MyCode" valign="top">MSG: .ASCIIZ &#8220;Hello, World!&#8221;&nbsp;</p>
<p>START: LDX #0<br />
LOOP: LDA MSG,X ; load character<br />
JSR $FFD2 ; output to current output device<br />
INX<br />
BNE @LOOP<br />
RTS</td>
</tr>
<tr>
<td valign="top"><strong>Basic</strong></td>
<td class="MyCode" valign="top">10 PRINT &#8220;Hello, World!&#8221;<br />
20 END</td>
</tr>
<tr>
<td valign="top"><strong>QBASIC</strong></td>
<td class="MyCode" valign="top">’ Hello, World! in QBASIC<br />
PRINT &#8220;Hello, World!&#8221;</td>
</tr>
<tr>
<td valign="top"><strong>Visual Basic</strong></td>
<td class="MyCode" valign="top">Sub Main()<br />
Print &#8220;Hello, World!&#8221;<br />
End Sub</td>
</tr>
<tr>
<td valign="top"><strong>Visual Basic</strong><strong> .NET</strong></td>
<td class="MyCode" valign="top">Class HelloWorld<br />
Shared Sub Main()<br />
System.Console.WriteLine(&#8220;Hello world!&#8221;)<br />
End Sub<br />
End Class</td>
</tr>
<tr>
<td valign="top"><strong>C (ANSI)</strong></td>
<td class="MyCode" valign="top">#include &lt;stdio.h&gt;<br />
/* Hello */<br />
int main(void)<br />
{ printf(&#8220;Hello, World!&#8221;);<br />
return 0;&nbsp;</p>
<p>}</td>
</tr>
<tr>
<td valign="top"><strong>Visual C++ 6.0</strong></td>
<td class="MyCode" valign="top">#include &lt;windows.h&gt;<br />
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)<br />
{<br />
MessageBox(NULL, &#8220;Hello world!&#8221;, &#8220;&#8221;, MB_OK);&nbsp;</p>
<p>return 0;<br />
}</td>
</tr>
<tr>
<td valign="top"><strong>Cobol</strong><strong><br />
( Common Business Oriented Language</strong><strong> )</strong></td>
<td class="MyCode" valign="top">*****************************<br />
IDENTIFICATION DIVISION.&nbsp;</p>
<p>PROGRAM-ID. HELLO.<br />
ENVIRONMENT DIVISION.<br />
DATA DIVISION.<br />
PROCEDURE DIVISION.<br />
MAIN SECTION.<br />
* COMMENTS</p>
<p>DISPLAY &#8220;Hello World!&#8221;.<br />
STOP RUN.<br />
****************************</td>
</tr>
<tr>
<td valign="top"><strong>ColdFusion</strong></td>
<td class="MyCode" valign="top">&lt;cfoutput&gt;Hello, World!&lt;/cfoutput&gt;</td>
</tr>
<tr>
<td valign="top"><strong>DBase</strong></td>
<td class="MyCode" valign="top">* COMMENTS<br />
? &#8220;Hello World!&#8221;</td>
</tr>
<tr>
<td valign="top"><strong>DOS</strong><strong> B atch</strong></td>
<td class="MyCode" valign="top">REM Hello, World! in DOS batch<br />
@ECHO OFF<br />
ECHO Hello, World!<br />
ECHO ON</td>
</tr>
<tr>
<td valign="top"><strong> DOS &amp; Assembler</strong></td>
<td class="MyCode" valign="top">@ECHO OFF&nbsp;</p>
<p>CLS<br />
IF &#8220;%1&#8243; == &#8220;&#8221; GOTO BYE<br />
IF NOT EXIST .’%1.ASM GOTO SERR<br />
IF &#8220;%2&#8243; == &#8220;E&#8221; GOTO EDITIT</p>
<p>DEL %1.OBJ<br />
DEL %1.EXE<br />
CLS<br />
ECHO ########## COMPILING&#8230;MASM #########<br />
MASM/T %1; &gt; LOG<br />
MORE LOG<br />
IF NOT EXIST .’%1.OBJ GOTO CERR</p>
<p>PAUSE<br />
CLS<br />
ECHO ########## LINKING&#8230;LINK ##########<br />
LINK %1;<br />
IF NOT EXIST .’%1.EXE GOTO LERR<br />
PAUSE<br />
CLS<br />
ECHO ######### RUNNING&#8230;%1.EXE ########</p>
<p>%1.EXE<br />
GOTO BYE<br />
:SERR<br />
ECHO %1.ASM<br />
ECHO ########### ERROR FOUND ###########<br />
ECHO # #<br />
ECHO # * SOURCE FILE NOT FOUND IN CURRENT DIRECTORY #<br />
ECHO # * GOING TO CREATE NEW ONE FROM TAMPLATE #<br />
ECHO # CTRL+C TO CANCEL #</p>
<p>ECHO ###########################<br />
PAUSE<br />
COPY .’TAMPLATE.ASM .’%1.ASM<br />
EDIT %1.ASM<br />
GOTO BYE<br />
:CERR<br />
ECHO .<br />
ECHO ########### ERROR FOUND ###########</p>
<p>ECHO # #<br />
ECHO # * ERROR FOUND IN COMPILE TIME #<br />
ECHO # * SENDING U IN EDIT MODE ?<br />
ECHO ############################<br />
PAUSE<br />
EDIT LOG %1.ASM<br />
GOTO BYE<br />
:LERR<br />
ECHO .</p>
<p>ECHO ########### ERROR FOUND ###########<br />
ECHO # #<br />
ECHO # * ERROR FOUND IN LINKING TIME #<br />
ECHO # * SENDING U IN EDIT MODE #<br />
ECHO ############################<br />
PAUSE<br />
EDIT LOG %1.ASM<br />
:EDITIT<br />
EDIT %1.ASM</p>
<p>GOTO BYE<br />
:BYE<br />
ECHO ON</td>
</tr>
<tr>
<td valign="top"><strong>Fortran</strong><strong><br />
( FORmula TRAnsalation</strong><strong> )</strong></td>
<td class="MyCode" valign="top">WRITE (*,*) ’Hello world!’&nbsp;</p>
<p>END</td>
</tr>
<tr>
<td valign="top"><strong>FoxPro</strong></td>
<td class="MyCode" valign="top">* COMMENTS<br />
? &#8220;Hello World!&#8221;</td>
</tr>
<tr>
<td valign="top"><strong>Visual FoxPro 6.0</strong></td>
<td class="MyCode" valign="top">* COMMENTS<br />
? &#8220;Hello World!&#8221;</td>
</tr>
<tr height="31">
<td valign="top"><strong>HTML 4.01 Strict</strong></td>
<td class="MyCode" valign="top">&lt;!DOCTYPE HTML PUBLIC &#8220;-//W3C//DTD HTML 4.01 Strict//EN&#8221; &#8220;http://www.w3.org/TR/html4/strict.dtd&#8221;&gt;<br />
&lt;html&gt;&nbsp;</p>
<p>&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243;&gt;<br />
&lt;title&gt;Hello, World!&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;p&gt;Hello, World!&lt;/p&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</td>
</tr>
<tr>
<td valign="top"><strong>XML</strong><strong><br />
( eXtensible Markup Langauage</strong><strong> )</strong></td>
<td class="MyCode" valign="top">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;<br />
&lt;?xml-stylesheet type=&#8221;text/xsl&#8221; href=&#8221;Hello-World.xsl&#8221; ?&gt;<br />
&lt;!&#8211; COMMENTS &#8211;&gt;&nbsp;</p>
<p>&lt;text&gt;&lt;string&gt;Hello World!&lt;/string&gt;&lt;/text&gt;</td>
</tr>
<tr>
<td valign="top"><strong>INF</strong><strong><br />
( Windows Information File</strong><strong> )</strong></td>
<td class="MyCode" valign="top">; COMMENTS : Hello World from INF&nbsp;</p>
<p>; THIS WILL COPY README.TXT, HELLO.INF TO WINDOWS’HELLO FOLDER<br />
; GOTO ADD REMOVE PROGRAMS, SEE HELLO WORLD ENTERY<br />
; UNINSTALL IT.<br />
[version]<br />
signature=&#8221;$CHICAGO$&#8221;<br />
; #### INSTALLER ####<br />
[DefaultInstall]<br />
CopyFiles=install.files</p>
<p>AddReg=add-registry-section<br />
[DestinationDirs]<br />
install.files=10,&#8221;Hello&#8221;<br />
Delete.files=10,&#8221;Hello&#8221;<br />
[install.files]<br />
ReadMe.txt<br />
hello.inf<br />
[add-registry-section]</p>
<p>HKLM,&#8221;SOFTWARE’Microsoft’Windows’CurrentVersion’Uninstall’Hello&#8221;,,,<br />
HKLM,&#8221;SOFTWARE’Microsoft’Windows’CurrentVersion’Uninstall’Hello&#8221;, &#8220;DisplayName&#8221;,0,&#8221;Hello World&#8221;</p>
<p>HKLM,&#8221;SOFTWARE’Microsoft’Windows’CurrentVersion’Uninstall’Hello&#8221;, &#8220;UninstallString&#8221;,0,&#8221;rundll32.exe setupapi,InstallHinfSection DefaultUnInstall 132 %10%’Hello’Hello.inf&#8221;<br />
; #### UNINSTALLER ####<br />
[DefaultUnInstall]</p>
<p>DelReg=del-registry-section<br />
DelFiles=Delete.files<br />
[del-registry-section]<br />
HKLM,&#8221;SOFTWARE’Microsoft’Windows’CurrentVersion’Uninstall’Hello&#8221;<br />
[Delete.files]<br />
ReadMe.txt</p>
<p>hello.inf</td>
</tr>
<tr>
<td valign="top"><strong>Java</strong></td>
<td class="MyCode" valign="top">public class HelloWorld<br />
{ public static void main(String[] args)<br />
{ System.out.println(&#8220;Hello, World!&#8221;);<br />
}&nbsp;</p>
<p>}</td>
</tr>
<tr>
<td valign="top"><strong>JavaScript</strong></td>
<td class="MyCode" valign="top">&lt;script language=&#8221;JavaScript&#8221;&gt;<br />
document.write(’Hello, World!’);<br />
&lt;/script&gt;</td>
</tr>
<tr>
<td valign="top"><strong>Matlab</strong></td>
<td class="MyCode" valign="top">disp(’Hello world’)</td>
</tr>
<tr>
<td valign="top"><strong>mIRC Script</strong></td>
<td class="MyCode" valign="top">echo Hello World</td>
</tr>
<tr>
<td valign="top"><strong>Pascal</strong></td>
<td class="MyCode" valign="top">(* Hello, World! in Pascal *)<br />
program HelloWorld(input, output);<br />
begin<br />
writeln(’Hello, World!’)<br />
end.</td>
</tr>
<tr>
<td valign="top"><strong>Delphi</strong></td>
<td class="MyCode" valign="top">Program HelloWorld;<br />
{$APPTYPE CONSOLE}<br />
//COMMENTS<br />
Begin<br />
WriteLn(’Hello World!’);&nbsp;</p>
<p>End.</td>
</tr>
<tr>
<td valign="top"><strong>PDF</strong><strong><br />
( Portable Document Format</strong><strong> )</strong></td>
<td class="MyCode" valign="top">%Hello World in Portable Document Format (PDF)<br />
%PDF-1.2<br />
1 0 obj&nbsp;</p>
<p>&lt;&lt;<br />
/Type /Page<br />
/Parent 5 0 R<br />
/Resources 3 0 R<br />
/Contents 2 0 R<br />
&gt;&gt;<br />
endobj<br />
2 0 obj<br />
&lt;&lt;</p>
<p>/Length 51<br />
&gt;&gt;<br />
stream<br />
BT<br />
/F1 24 Tf<br />
1 0 0 1 260 600 Tm<br />
(Hello World!)Tj<br />
ET<br />
endstream</p>
<p>endobj<br />
3 0 obj<br />
&lt;&lt;<br />
/ProcSet[/PDF/Text]<br />
/Font &lt;&lt;/F1 4 0 R &gt;&gt;<br />
&gt;&gt;<br />
endobj<br />
4 0 obj</p>
<p>&lt;&lt;<br />
/Type /Font<br />
/Subtype /Type1<br />
/Name /F1<br />
/BaseFont /Arial<br />
&gt;&gt;<br />
endobj<br />
5 0 obj<br />
&lt;&lt;</p>
<p>/Type /Pages<br />
/Kids [ 1 0 R ]<br />
/Count 1<br />
/MediaBox<br />
[ 0 0 612 792 ]<br />
&gt;&gt;<br />
endobj<br />
6 0 obj<br />
&lt;&lt;</p>
<p>/Type /Catalog<br />
/Pages 5 0 R<br />
&gt;&gt;<br />
endobj<br />
trailer<br />
&lt;&lt;<br />
/Root 6 0 R<br />
&gt;&gt;</td>
</tr>
<tr>
<td valign="top"><strong>Perl</strong></td>
<td class="MyCode" valign="top"># Hello<br />
print &#8220;Hello, World!’n&#8221;;</td>
</tr>
<tr>
<td valign="top"><strong>PHP</strong></td>
<td class="MyCode" valign="top">&lt;?php&nbsp;</p>
<p>echo ’Hello, World!’;<br />
?&gt;</td>
</tr>
<tr>
<td valign="top"><strong>Python</strong></td>
<td class="MyCode" valign="top"># COMMENTS<br />
print &#8220;Hello World!&#8221;</td>
</tr>
<tr>
<td valign="top"><strong>Ruby</strong></td>
<td class="MyCode" valign="top">puts &#8220;Hello world!&#8221;</td>
</tr>
<tr>
<td valign="top"><strong>ABAP4/SAP </strong></td>
<td class="MyCode" valign="top">REPORT ZHB00001.<br />
*Hello world in ABAP/4 *<br />
WRITE: ’Hello world!’.</td>
</tr>
<tr>
<td valign="top"><strong>SQL</strong></td>
<td class="MyCode" valign="top">SELECT ’Hello World!’ FROM dual;</td>
</tr>
<tr>
<td valign="top"><strong>PL/SQL </strong></td>
<td class="MyCode" valign="top">&#8211; COMMTNTS&nbsp;</p>
<p>set serveroutput on<br />
begin<br />
dbms_output.enable(10000);<br />
dbms_output.put_line(’Hello World!’);<br />
end;</td>
</tr>
<tr>
<td valign="top"><strong>TCL</strong><strong><br />
( Tool command language</strong><strong> )</strong></td>
<td class="MyCode" valign="top">#!/usr/local/bin/tclsh<br />
# COMMENTS<br />
puts &#8220;Hello World!&#8221;</td>
</tr>
<tr>
<td valign="top"><strong>Unix shell</strong></td>
<td class="MyCode" valign="top">echo ’Hello, World!’</td>
</tr>
<tr>
<td valign="top"><strong>Wscript</strong></td>
<td class="MyCode" valign="top">WScript.Echo(&#8220;Hello World!&#8221;);</td>
</tr>
</tbody>
</table>
<p><a href="http://www.scriptol.com/programming/hello-world.php">http://www.scriptol.com/programming/hello-world.php</a><a><br />
</a><a href="http://everything2.com/title/Hello+World">http://everything2.com/title/Hello+World</a><br />
<a href="http://www.angelfire.com/pq/lalit/article/hello-world-program.htm">http://www.angelfire.com/pq/lalit/article/hello-world-program.htm</a></p>
<p><strong>Hello World !</strong><br />
How the way people code &#8220;Hello World&#8221; varies depending on their age and job:</p>
<table border="0" cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td valign="top"><strong>High School/Jr.High</strong></td>
<td class="MyCode" valign="top">10 PRINT &#8220;HELLO WORLD&#8221;<br />
20 END</td>
</tr>
<tr>
<td valign="top"><strong>First year in College</strong></td>
<td class="MyCode" valign="top">program Hello(input, output)<br />
begin<br />
writeln(’Hello World’)<br />
end.</td>
</tr>
<tr>
<td valign="top"><strong>Senior year in College</strong></td>
<td class="MyCode" valign="top">(defun hello&nbsp;</p>
<p>(print<br />
(cons ’Hello (list ’World))))</td>
</tr>
<tr>
<td valign="top"><strong>New professional</strong></td>
<td class="MyCode" valign="top">#include &lt;stdio.h&gt;<br />
void main(void)<br />
{&nbsp;</p>
<p>char *message[] = {&#8220;Hello &#8220;, &#8220;World&#8221;};<br />
int i;<br />
for(i = 0; i &lt; 2; ++i)<br />
printf(&#8220;%s&#8221;, message[i]);</p>
<p>printf(&#8220;’n&#8221;);<br />
}</td>
</tr>
<tr>
<td valign="top"><strong>Seasoned professional</strong></td>
<td class="MyCode" valign="top">#include &lt;iostream.h&gt;<br />
#include &lt;string.h&gt;&nbsp;</p>
<p>class string<br />
{<br />
private:<br />
int size;<br />
char *ptr;<br />
public:<br />
string() : size(0), ptr(new char(’’0’)) {}</p>
<p>string(const string &amp;s) : size(s.size)<br />
{<br />
ptr = new char[size + 1];<br />
strcpy(ptr, s.ptr);<br />
}<br />
~string()</p>
<p>{<br />
delete [] ptr;<br />
}<br />
friend ostream &amp;operator &lt;&lt;(ostream &amp;, const string &amp;);<br />
string &amp;operator=(const char *);</p>
<p>};<br />
ostream &amp;operator&lt;&lt;(ostream &amp;stream, const string &amp;s)<br />
{<br />
return(stream &lt;&lt; s.ptr);<br />
}</p>
<p>string &amp;string::operator=(const char *chrs)<br />
{<br />
if (this != &amp;chrs)<br />
{<br />
delete [] ptr;<br />
size = strlen(chrs);<br />
ptr = new char[size + 1];</p>
<p>strcpy(ptr, chrs);<br />
}<br />
return(*this);<br />
}<br />
int main()<br />
{<br />
string str;</p>
<p>str = &#8220;Hello World&#8221;;<br />
cout &lt;&lt; str &lt;&lt; endl;<br />
return(0);<br />
}</td>
</tr>
<tr>
<td valign="top"><strong>System Administrator</strong></td>
<td class="MyCode" valign="top">#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
main()<br />
{<br />
char *tmp;&nbsp;</p>
<p>int i=0;<br />
/* on y va bourin */<br />
tmp=(char *)malloc(1024*sizeof(char));<br />
while (tmp[i]=&#8221;Hello Wolrd&#8221;[i++]);<br />
/* Ooopps y’a une infusion ! */</p>
<p>i=(int)tmp[8];<br />
tmp[8]=tmp[9];<br />
tmp[9]=(char)i;<br />
printf(&#8220;%s’n&#8221;,tmp);<br />
}</td>
</tr>
<tr>
<td valign="top"><strong>Apprentice Hacker</strong></td>
<td class="MyCode" valign="top">#!/usr/local/bin/perl<br />
$msg=&#8221;Hello, world.’n&#8221;;<br />
if ($#ARGV &gt;= 0) {<br />
while(defined($arg=shift(@ARGV))) {&nbsp;</p>
<p>$outfilename = $arg;<br />
open(FILE, &#8220;&gt;&#8221; . $outfilename) || die &#8220;Can’t write $arg: $!’n&#8221;;<br />
print (FILE $msg);<br />
close(FILE) || die &#8220;Can’t close $arg: $!’n&#8221;;</p>
<p>}<br />
} else {<br />
print ($msg);<br />
}<br />
1;</td>
</tr>
<tr>
<td valign="top"><strong>Experienced Hacker</strong></td>
<td class="MyCode" valign="top">#include &lt;stdio.h&gt;&nbsp;</p>
<p>#include &lt;string.h&gt;<br />
#define S &#8220;Hello, World’n&#8221;<br />
main(){exit(printf(S) == strlen(S) ? 0 : 1);}</td>
</tr>
<tr>
<td valign="top"><strong>Seasoned Hacker</strong></td>
<td class="MyCode" valign="top">% cc -o a.out ~/src/misc/hw/hw.c<br />
% a.out&nbsp;</p>
<p>Hello, world.</td>
</tr>
<tr>
<td valign="top"><strong>Guru Hacker</strong></td>
<td class="MyCode" valign="top">% cat<br />
Hello, world.</td>
</tr>
<tr>
<td valign="top"><strong>New Manager</strong><strong><br />
(do you remember?)</strong></td>
<td class="MyCode" valign="top">10 PRINT &#8220;HELLO WORLD&#8221;<br />
20 END</td>
</tr>
<tr>
<td valign="top"><strong>Middle Manager</strong></td>
<td class="MyCode" valign="top">mail -s &#8220;Hello, world.&#8221; bob@b12<br />
Bob, could you please write me a program that prints &#8220;Hello, world.&#8221;?&nbsp;</p>
<p>I need it by tomorrow.<br />
^D</td>
</tr>
<tr>
<td valign="top"><strong>Senior Manager</strong></td>
<td class="MyCode" valign="top">% zmail jim<br />
I need a &#8220;Hello, world.&#8221; program by this afternoon.</td>
</tr>
<tr>
<td valign="top"><strong>Chief Executive</strong></td>
<td class="MyCode" valign="top">% letter<br />
letter: Command not found.<br />
% mail<br />
To: ^X ^F ^C<br />
% help mail<br />
help: Command not found.<br />
% damn!&nbsp;</p>
<p>!: Event unrecognized<br />
% logout</td>
</tr>
<tr>
<td valign="top"><strong>Research Scientist</strong></td>
<td class="MyCode" valign="top">PROGRAM HELLO<br />
PRINT *, ’Hello World’<br />
END</td>
</tr>
<tr>
<td valign="top"><strong>Older research Scientist</strong></td>
<td class="MyCode" valign="top">WRITE (6, 100)<br />
100 FORMAT (1H ,11HHELLO WORLD)<br />
CALL EXIT<br />
END</td>
</tr>
</tbody>
</table>
<p><a href="http://www.gnu.org/fun/jokes/helloworld.html">http://www.gnu.org/fun/jokes/helloworld.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odydasa.web.id/2009/09/15/hello-world/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Perkalian Dua Bilangan dengan Angka Puluhan yang Sama</title>
		<link>http://blog.odydasa.web.id/2009/03/27/perkalian-dua-bilangan-dengan-angka-puluhan-yang-sama/</link>
		<comments>http://blog.odydasa.web.id/2009/03/27/perkalian-dua-bilangan-dengan-angka-puluhan-yang-sama/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 03:49:00 +0000</pubDate>
		<dc:creator>odydasa</dc:creator>
				<category><![CDATA[Keminter]]></category>
		<category><![CDATA[Rupa-rupa]]></category>
		<category><![CDATA[dua bilangan]]></category>
		<category><![CDATA[kuadrat]]></category>
		<category><![CDATA[matematika]]></category>
		<category><![CDATA[perkalian]]></category>
		<category><![CDATA[perkalian cepat]]></category>
		<category><![CDATA[puluhan]]></category>

		<guid isPermaLink="false">http://blog.odydasa.web.id/2009/03/27/perkalian-dua-bilangan-dengan-angka-puluhan-yang-sama/</guid>
		<description><![CDATA[Biar otak gak beku karena rutinitas, mari kita mencoba me-review kembali aritmatika. Di bawah ini adalah beberapa persamaan yang bisa digunakan untuk perhitungan perkalian dua buah bilangan (atau kuadrat, jika kedua bilangan adalah sama), yang besarnya di bawah 100. Persamaan Perkalian Dua Bilangan #1: Ada dua bilangan dengan angka puluhan yang sama (misalkan ada angka [...]]]></description>
			<content:encoded><![CDATA[<p>Biar otak gak beku karena rutinitas, mari kita mencoba me-review kembali aritmatika.<br />
Di bawah ini adalah beberapa persamaan yang bisa digunakan untuk perhitungan perkalian dua buah bilangan (atau kuadrat, jika kedua bilangan adalah sama), yang besarnya di bawah 100.</p>
<ol>
<li>Persamaan Perkalian Dua Bilangan #1:<br />
Ada dua bilangan dengan angka puluhan yang sama (misalkan ada angka 23, maka puluhan=2, satuan=3) yang dikalikan. Misalkan keduanya memiliki angka angka puluhan &#8220;a&#8221;, serta &#8220;b&#8221; dan &#8220;c&#8221; untuk satuannya, sehingga bilangan pertama adalah &#8220;(a+b)&#8221; serta bilangan kedua adalah &#8220;(a+c)&#8221;.<span style="font-family: Courier New;">a+b)*(a+c)<br />
= a*a + a*b + a*c + b*c<br />
= a*(a+b+c) + b*c<br />
= ( (a+b) + c ) * a + b*c<br />
</span><br />
Dari persamaan pertama ini, maka &#8220;(a+b)&#8221; adalah bilangan pertama ditambah dengan &#8220;c&#8221; sebagai satuan bilangan kedua, dikalikan &#8220;a&#8221; sebagai puluhannya, kemudian ditambah dengan perkalian kedua satuan (&#8220;b*c&#8221;).</p>
<p>Misalkan ada angka 22 dan 27 (a=20, b=2, c=7, a+b=22):</p>
<p><span style="font-family: Courier New;">22*27 = (22 + 7) * 20 + 2*7 = 29*20 + 14 = 580 + 14 = 594</span></p>
<p>Perhatikan angka puluhannya, itu digunakan sebagai pengali<br />
<span style="font-family: Courier New;">12*13 = (12+3)*10 + 6 = 15*10 + 6 = 150 + 6 = 156<br />
18*17 = (18+7)*10 + 56 = 25*10 + 56 = 300 + 56 = 306<br />
22*23 = (22+3)*20 + 6 = 25*20 + 6 = 500 + 6 = 506<br />
32*33 = (32+3)*30 + 6 = 35*30 + 6 = 1.050 + 6 = 1.056<br />
52*53 = (52+3)*50 + 6 = 55*50 + 6 = 2.750 + 6 = 2.756<br />
98*97 = (98+7)*90 + 56 = 105*90 + 56 = 9.450 + 56 = 9.506<br />
</span><br />
Rumit?<br />
Persamaan itu akan sangat bermanfaat untuk angka belasan.<br />
Misalkan perkalian antara 12 dan 17</p>
<p><span style="font-family: Courier New;">12*17 = (12+7) * 10 + 2*7 = 19*10 + 14 = 190 + 14 = 204</span> <span id="more-16"></span></li>
<li>Persamaan Perkalian Dua Bilangan #2:<br />
Sekarang, misalkan kedua bilangan disimbolkan dengan &#8220;(a-b)&#8221; dan &#8220;(a-c)&#8221;, maka misalkan ada bilangan 18, berarti (20-2), atau &#8220;(a-b)&#8221; dengan &#8220;a=20&#8243; dan &#8220;b=2&#8243;.<span style="font-family: Courier New;">(a-b)*(a-c)<br />
= a*a &#8211; a*c &#8211; a*b + b*c<br />
= a*(a-b-c) + b*c<br />
= ( (a-b) &#8211; c ) * a + b*c<br />
</span><br />
Dari persamaan kedua, maka &#8220;(a-b)&#8221; adalah bilangan pertama dikurangi dengan &#8220;c&#8221; sebagai satuan bilangan kedua, dikalikan &#8220;a&#8221; sebagai puluhannya, kemudian ditambah dengan perkalian kedua satuan (&#8220;b*c&#8221;).</p>
<p>Misalkan ada angka 22 dan 27, dengan 22=30-8 dan 27=30-3 (a=30, b=8, c=3, a-b=22):</p>
<p><span style="font-family: Courier New;">22*27 = (22 &#8211; 3)*30 + 8*3 = 19*30 + 21 = 570 + 24 = 594</span></p>
<p>Hasilnya sama dengan hasil perhitungan dengan persamaan pertama<br />
Rumit?<br />
Persamaan itu akan sangat bermanfaat untuk angka yang mendekati angka 100.<br />
Misalkan perkalian antara 92 dan 97 (di sini angka puluhan di atasnya adalah 100)</p>
<p><span style="font-family: Courier New;">92*97 = (100-8)*(100-3) = (92-3)*100 + 8*3 = 89*100 + 24 = 8.900 + 24 = 8.924<br />
</span></li>
<li>Persamaan Kuadrat Suatu Bilangan<br />
Sekarang, jika kedua bilangan yang dikalikan adalah sama, dengan kata lain menghitung kuadrat suatu bilangan:<span style="font-family: Courier New;">(a+b)*(a+b)<br />
= ( (a+b) + b ) * a + b*b<br />
</span><br />
Dari persamaan ketiga ini, maka sebagai bilangan yang hendak dikuadratkan, &#8220;(a+b)&#8221; ditambah dengan &#8220;b&#8221; sebagai satuannya, dikalikan &#8220;a&#8221; sebagai puluhannya, kemudian ditambah dengan kuadrat satuannya (&#8220;b*b&#8221;).</p>
<p>Misalkan angka 27 hendak dikuadratkan (a=20, b=7):</p>
<p><span style="font-family: Courier New;">27*27 = (27 + 7) * 20 + 7*7 = 34*20 + 49 = 680 + 49 = 729 <span style="font-family: Courier New;"><font face="Courier New">┬á</p>
<p></font></span>┬á</p>
<p></span></p>
<p>Jika diterapkan di angka <span style="font-family: @Arial Unicode MS;">yang</span> lain:<br />
<span style="font-family: Courier New;">17^2 = (17 + 7) * 10 + 7^2 = 24*10 + 49 = 240 + 49 = 289<br />
34^2 = (34 + 4) * 30 + 4^2 = 38*30 + 16 = 1.140 + 16 = 1.156<br />
61^2 = (61 + 1) * 60 + 1^2 = 62*60 + 1 = 3.720 + 1 = 3.721<br />
99^2 = (99 + 9) * 90 + 9^2 = 108*90 + 81 = 9.720 + 81 = 9.801<br />
</span><br />
Atau jika hendak mengembangkan penggunaan persamaan yang kedua:</p>
<p><span style="font-family: Courier New;">(a-b)(a-b)<br />
= ( (a-b) &#8211; b ) * a + b*b<br />
</span><br />
Dari persamaan keempat ini, maka sebagai bilangan yang hendak dikuadratkan, &#8220;(a-b)&#8221; dikurangi dengan &#8220;b&#8221; sebagai satuannya, dikalikan &#8220;a&#8221; sebagai puluhannya, kemudian ditambah dengan kuadrat satuannya (&#8220;b*b&#8221;).</p>
<p>Misalkan angka 27 hendak dikuadratkan (a=30, b=3):</p>
<p><span style="font-family: Courier New;">27*27 = (27 &#8211; 3) * 30 + 3*3 = 24*30 + 9 = 720 + 9 = 729<br />
</span><br />
Pilihan penggunaan dan pengembangan antara rumus pertama dan kedua dapat dipertimbangkan berdasar kerumitan angkanya. Misalkan dengan angka belasan akan lebih sederhana menggunakan pengembangan persamaan pertama (persamaan ketiga), sedangkan jika mendekati 100 akan lebih sederhana menggunakan pengembangan persamaan kedua (persamaan keempat).</p>
<p><span style="font-family: Courier New;">17^2 = (17 + 7) * 10 + 7^2 = 24*10 + 49 = 240 + 49 = 289<br />
99^2 = (99 &#8211; 1) * 100 + 1^2 = 98*100 + 1 = 9.800 + 1 = 9.801<br />
</span></li>
<li>Persamaan Kuadra Bilangan Bersatuan &#8220;5&#8243;:<br />
Untuk bilangan yang memiliki satuan &#8220;5&#8243;, misalkan &#8220;15&#8243; dan &#8220;95&#8243;, maka persamaan ketiga dapat dikembangkan persamaan berikut:<br />
<span style="font-family: Courier New;"><br />
(a+b)*(a+b)<br />
= ( (a+b) + b ) * a + b*b<br />
= a * ( a + b + b) + b*b ; b = 5<br />
= a * ( a + 5 + 5) + 5*5<br />
= a * ( a + 10) + 25 <span style="font-family: Courier New;"><font face="Courier New">┬á</p>
<p></font></span>┬á</p>
<p></span>Dari persamaan kelima ini, maka puluhan bilangan tersebut dikalikan dengan puluhan yang ditambah dengan 10, atau &#8220;a*(a+10)&#8221;, kemudian ditambah 25.</p>
<p>Atau jika hendak mengembangkan dari persamaan keempat,</p>
<p><span style="font-family: Courier New;">(a-b)*(a-b)<br />
= ( (a-b) &#8211; b ) * a + b*b<br />
= a * ( a &#8211; b &#8211; b) + b*b ; b = 5<br />
= a * ( a &#8211; 5 &#8211; 5) + 5*5<br />
= a * ( a &#8211; 10) + 25<br />
</span><br />
Dari persamaan kelima ini, maka puluhan bilangan tersebut dikalikan dengan puluhan yang dikurangi dengan 10, atau &#8220;a*(a-10)&#8221;, kemudian ditambah 25.</p>
<p><span style="font-family: Courier New;">95^2 = 90*(90+10) + 25 = 90*100 + 25 = 9.000 + 25 = 9.025<br />
85^2 = 80*(80+10) + 25 = 80*90 + 25 = 7.200 + 25 = 7.225<br />
45^2 = 40*(40+10) + 25 = 40*50 + 25 = 2.000 + 25 = 2.025<br />
15^2 = 10*(10+10) + 25 = 10*20 + 25 = 200 + 25 = 225<span style="font-family: Courier New;"><font face="Courier New">95^2 = 100*(100-10) + 25 = 100*90 + 25 = 9.000 + 25 = 9.025<br />
85^2 = 90*(90-10) + 25 = 90*80 + 25 = 7.200 + 25 = 7.225<br />
45^2 = 50*(50-10) + 25 = 50*40 + 25 = 2.000 + 25 = 2.025<br />
15^2 = 20*(20-10) + 25 = 20*10 + 25 = 200 + 25 = 225</p>
<p></font></span>┬á</p>
<p></span></p>
<p>┬á</li>
</ol>
<p>Ringkasan:</p>
<ol>
<li>Perhitungan praktis untuk perkalian angka belasan<br />
<span style="font-family: Courier New;">(a+b)*(a+c) = ( (a+b) + c ) * a + b*c </span></li>
<li>Perhitungan praktis untuk perkalian angka mendekati 100<br />
<span style="font-family: Courier New;">(a-b)*(a-c) = ( (a-b) &#8211; c ) * a + b*c </span></li>
<li>Perhitungan praktis untuk pengkuadratanangka mendekati 10<br />
<span style="font-family: Courier New;">(a+b)^2 = ( (a+b) + b ) * a + b*b </span></li>
<li>Perhitungan praktis untuk pengkuadratanangka mendekati 100<br />
<span style="font-family: Courier New;">(a-b)^2 = ( (a-b) &#8211; b ) * a + b*b </span></li>
<li>Perhitungan praktis untuk pengkuadratan dengan angka satuan 5<br />
<span style="font-family: Courier New;">(a+5)^2 = a * (a+10) + 25<br />
(a-5)^2 = a * (a-10) + 25<br />
</span></li>
</ol>
<p>Demikian.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.odydasa.web.id/2009/03/27/perkalian-dua-bilangan-dengan-angka-puluhan-yang-sama/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pembuatan PCB dari Gambar di Kertas</title>
		<link>http://blog.odydasa.web.id/2007/05/11/pembuatan-pcb-dari-gambar-di-kertas/</link>
		<comments>http://blog.odydasa.web.id/2007/05/11/pembuatan-pcb-dari-gambar-di-kertas/#comments</comments>
		<pubDate>Thu, 10 May 2007 17:00:06 +0000</pubDate>
		<dc:creator>odydasa</dc:creator>
				<category><![CDATA[Do It Your Self]]></category>
		<category><![CDATA[Elektronika]]></category>
		<category><![CDATA[Keminter]]></category>
		<category><![CDATA[foto kopi]]></category>
		<category><![CDATA[kertas transfer]]></category>
		<category><![CDATA[pcb]]></category>
		<category><![CDATA[plastik transparan]]></category>
		<category><![CDATA[printed circuit board]]></category>
		<category><![CDATA[printer laser]]></category>

		<guid isPermaLink="false">http://odydasa.wordpress.com/2007/05/11/pembuatan-pcb-dari-gambar-di-kertas/</guid>
		<description><![CDATA[Gambar jalur rangkaian yang dicetak di kertas dengan menggunakan printer laser dapat dipindahkan ke media PCB. Cara kerja printer laser adalah memanasi bubuk tinta sehingga menempel di kertas. Setelah tinta menempel di kertas, tinta dipindah ke PCB dengan cara dipanasi juga. Oleh karena itu, yang bisa digunakan adalah hasil cetakan printer laser, dan bukan printer [...]]]></description>
			<content:encoded><![CDATA[<p>Gambar jalur rangkaian yang dicetak di kertas dengan menggunakan printer laser dapat dipindahkan ke media PCB. Cara kerja printer laser adalah memanasi bubuk tinta sehingga menempel di kertas. Setelah tinta menempel di kertas, tinta dipindah ke PCB dengan cara dipanasi juga. Oleh karena itu, yang bisa digunakan adalah hasil cetakan printer laser, dan bukan printer tinta cair.</p>
<p>Kertas yang digunakan bisa dengan kertas blueprint, atau kertas transfer, atau ada yang ide pakai kertas foto untuk printer, yang jelas idenya adalah memindahkan tinta printer laser ke PCB dengan cara dipanasi.</p>
<p>Dari beberapa kali percobaan, kertas yang pernah saya pakai adalah kertas transfer dan kertas foto. Tapi berhubung mahal, aku eksperimen dengan yang lain, yaitu kertas biasa dan kertas kalender (diprint di bagian belakang yang putih polos). Hasil untuk kertas kalender lumayan, yang kertas HVS kurang bagus, tapi lumayan untuk penghematan, dan menurutku bisa ditingkatkan jika mau lebih telaten.<span id="more-11"></span></p>
<p>Ada lagi cara yang bisa digunakan, yaitu mencetak gambar rangkaian di kertas biasa, kemudian dengan foto kopi, gambar itu disalin ke plastik transparansi/ OHP. Yang perlu dicatat, plastik ini khusus untuk foto kopi, sehingga relatif tahan panas. Berbeda dengan plastik mika yang digunakan pada penjilidan, plastik transparansi ini lebih tebal dan lebih tahan panas. Jadi, jangan sampai keliru memilih.</p>
<p>Yang perlu diperhatikan adalah, gambar yang dicetak harus dalam kondisi dibalik (<em>mirror</em>/ <em>flip</em>, ditukar kiri dan kanannya, bukan diputar/ <em>rotate</em>). Aplikasi Protel memiliki fasilitas untuk mencetak dengan tipe <em>mirror</em>.</p>
<p>Pemanasannya biasanya pakai setrika. Sudah aku coba, lebih bagus lagi kalau pakai solder blower. Ukuran panasnya, kalau memakai standar printer laser (suhu untuk melumerkan tinta), bisa dibaca di tempat printernya, sekitar 130 derajat C.</p>
<p>Permasalahan yang sering muncul:</p>
<ul>
<li>Terlalu panas<br />
=&gt; lapisan tembaga PCB jadi rusak, PCB melengkung</li>
<li>Panas kurang merata<br />
=&gt; tinta printer laser jadi tidak semua menempel di PCB<br />
=&gt; kalau dengan blower jadi bisa lebih diratakan panasnya</li>
<li>Kertas bergeser<br />
=&gt; gambar jalur jadi rusak</li>
</ul>
<p>Tips:</p>
<ul>
<li>Potong PCB secukupnya<br />
Ukuran PCB kira-kira lebih besar dari ukuran gambar jalur di kertas</li>
<li>Kertas ditempel ke PCB<br />
Sisa kertas dilipat ke balik PCB dan direkatkan ke balik PCB (bagian yang tidak bertembaga) dengan isolasi kertas (kalau pakai kertas HVS pelipatannya tidak sekaku kertas lain)</li>
<li>Salah satu pojok gambar disetrika sedikit<br />
Pojok gambar disetrika hingga kertas menempel di PCB (supaya gambar tidak bergeser), baru kemudian ke bagian lain.</li>
<li>Pemanasan dengan setrika lebih baik dengan ditekan-tekan<br />
Intinya memanasi kertas yang terkena tinta, bukan dengan menggosok seperti menyetrika baju agar kertas tidak lengket dengan setrika dan bergeser dari PCB.<br />
Pemanasan dengan blower dapat lebih teliti lagi dengan mengikuti tiap jalur.</li>
</ul>
<p>Setelah tinta menempel di PCB, pada dasarnya yang dibutuhkan adalah tinta tersebut dan kertas printout harus dihilangkan. Dengan menggunakan air, kertas ini jadi hancur (PCB dimasukkan ke air, digosok-gosok dengan tangan, atau media lain asal jangan merusak tinta). Hasilnya, PCB dengan gambar jalur dari tinta laser (warna hitam, atau agak putih karena sisa kertas). Perlu ditelusuri lagi jalurnya agar untuk menghilangkan sisa kertas, biasanya aku memakai jarum pentul untuk mengorek. Untuk perbaikan jalur yang belum kena tinta bisa mengunakan spidol permanen<br />
(misalkan untuk OHP).</p>
<p>Melarutkan PCB yang telah bergambar jalur rangkaian, biasanya menggunakan larutan FeCl3 (feri klorida) yang sebaiknya hangat (kalau terlalu panas kalau kena tubuh kan berbahaya) supaya mempercepat pelarutan, kalau perlu sambil digoyang-goyang. hati-hati jangan kena baju, soalnya sangat susah dihilangkan.</p>
<p>Setelah tembaga di PCB di luar jalur terlarut, sisa tinta laser harus dihilangkan. yang praktis mungkin pakai amplas halus atau abu gosok, tetapi menggerus jalur tembaga. Aku biasanya pakai tiner tinta sablon (mudah dicari di toko bahan sablon) kemudian dicuci pakai sabun colek.</p>
<p>Sekedar hasil pengalaman. Semoga bermanfaat.</p>
<hr noshade="noshade" />Yang perlu dipersiapkan</p>
<ul>
<li>Kertas tempat untuk mencetak<br />
(kertas blue print, kertas transfer, kertas foto, kertas kalender)<br />
Bisa juga kertas biasa, dengan catatan nantinya dipindah menggunakan foto kopi ke plastik<br />
transparansi</li>
<li>Printer laser</li>
<li>Aplikasi untuk mencetak<br />
Untuk file-file PCB, bisa menggunakan aplikasi CAD semacam Protel, jika gambar sudah dalam bentuk PDF atau berupa file gambar, maka gunakan aplikasi yang sesuai</li>
<li>PCB dengan ukuran sedikit lebih besar daripada gambar</li>
<li>Setrika dan solder blower</li>
<li>Isolasi kertas<br />
Untuk mengeratkan penempelan kertas pada PCB</li>
<li>Feri Klorida, atau sejenis<br />
Untuk melarutkan tembaga PCB yang tidak tertutup oleh tinta</li>
<li>Air<br />
Untuk menghilangkan kertas, setelah kertas dan tinta menempel pada PCB</li>
<li>Ampelas halus, abu gosok, atau pelarut/ tiner tinta sablon<br />
Untuk menghilangkan tinta pada PCB, setelah dilakukan pelarutan PCB</li>
<li>Sabun<br />
Untuk membersihkan sisa-sisa tiner. sabun colek mudah diperoleh dan mampu membersihkan<br />
dengan baik</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.odydasa.web.id/2007/05/11/pembuatan-pcb-dari-gambar-di-kertas/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

