<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Frieyadie Unofficial Homepage</title>
	<atom:link href="http://frieyadie.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://frieyadie.wordpress.com</link>
	<description>Manajemen Informatika dan Komputer</description>
	<lastBuildDate>Wed, 15 Apr 2009 07:14:07 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>id</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='frieyadie.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a056d373693bb0118f2318b4a2aeacb6?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Frieyadie Unofficial Homepage</title>
		<link>http://frieyadie.wordpress.com</link>
	</image>
			<item>
		<title>Membuat Aplikasi Web Sederhana</title>
		<link>http://frieyadie.wordpress.com/2009/04/14/membuat-aplikasi-web-sederhana/</link>
		<comments>http://frieyadie.wordpress.com/2009/04/14/membuat-aplikasi-web-sederhana/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 14:32:44 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[Cyber Crime]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=115</guid>
		<description><![CDATA[a. Membuat Koneksi Database
Untuk membuat koneksi kedatabase, perhatikan script dibawah ini. Simpanlah dengan nama : conndbsiswa.php, letakan didalam folder kerja anda masing-masing.

&#60;?php
	$dbhost = &#34;localhost&#34;;
	$dbuser = &#34;root&#34;;
	$dbpass = &#34;P@ssw0rd&#34;;
	$dbname = &#34;db1109XXXX&#34;;

	$koneksi=mysql_connect($dbhost, $dbuser, $dbpass) or die (&#34;Koneksi ke MySQL gagal!&#34;);
	mysql_select_db($dbname,$koneksi);
	$tanggal = date(&#34;Y-m-d H:i:s&#34;);
?&#62;

b. Membuat Form Input Data Siswa
Untuk membuat Input Data Siswa, perhatikan script dibawah ini. Simpanlah [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=115&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>a. Membuat Koneksi Database</strong></p>
<p>Untuk membuat koneksi kedatabase, perhatikan script dibawah ini. Simpanlah dengan nama : <strong>conndbsiswa.php</strong>, letakan didalam folder kerja anda masing-masing.</p>
<pre class="brush: php;">
&lt;?php
	$dbhost = &quot;localhost&quot;;
	$dbuser = &quot;root&quot;;
	$dbpass = &quot;P@ssw0rd&quot;;
	$dbname = &quot;db1109XXXX&quot;;

	$koneksi=mysql_connect($dbhost, $dbuser, $dbpass) or die (&quot;Koneksi ke MySQL gagal!&quot;);
	mysql_select_db($dbname,$koneksi);
	$tanggal = date(&quot;Y-m-d H:i:s&quot;);
?&gt;
</pre>
<p><strong>b. Membuat Form Input Data Siswa</strong></p>
<p>Untuk membuat Input Data Siswa, perhatikan script dibawah ini. Simpanlah dengan nama : <strong>siswa_input.php</strong>, letakan didalam folder kerja anda masing-masing.</p>
<pre class="brush: php;">
&lt;HTML&gt;
 &lt;HEAD&gt;
  &lt;TITLE&gt; INPUT DATA SISWA &lt;/TITLE&gt;
 &lt;/HEAD&gt;

 &lt;BODY&gt;
     &lt;FORM METHOD=POST ACTION=&quot;siswa_save.php&quot;&gt;
	   &lt;TABLE&gt;
	   &lt;TR&gt;
		  &lt;TD&gt;N.I.S&lt;/TD&gt;&lt;TD&gt;:&lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;nis&quot; size=10&gt;&lt;/TD&gt;
	   &lt;/TR&gt;
	   &lt;TR&gt;
		  &lt;TD&gt;Nama Siswa&lt;/TD&gt;&lt;TD&gt;:&lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;nmsis&quot; size=40&gt;&lt;/TD&gt;
	   &lt;/TR&gt;
	   &lt;TR&gt;
		  &lt;TD&gt;Tempat Lahir&lt;/TD&gt;&lt;TD&gt;:&lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;tmplhr&quot; size=30&gt;&lt;/TD&gt;
	   &lt;/TR&gt;
	   &lt;TR&gt;
		  &lt;TD&gt;Tanggal Lahir&lt;/TD&gt;&lt;TD&gt;:&lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE=&quot;text&quot; NAME=&quot;tgllhr&quot; size=15&gt; [yyyy-mm-dd]&lt;/TD&gt;
	   &lt;/TR&gt;

	   &lt;TR&gt;
		  &lt;TD valign=TOP&gt;Jenis Kelamin&lt;/TD&gt;&lt;TD valign=TOP&gt;:&lt;/TD&gt;&lt;TD&gt;
		    &lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;jnskel&quot; VALUE=&quot;Laki-Laki&quot;&gt;Laki-Laki&lt;BR&gt;
			&lt;INPUT TYPE=&quot;radio&quot; NAME=&quot;jnskel&quot; VALUE=&quot;Perempuan&quot;&gt;Perempuan
		  &lt;/TD&gt;
	   &lt;/TR&gt;
	   &lt;TR&gt;
		  &lt;TD valign=TOP&gt;Agama&lt;/TD&gt;&lt;TD valign=TOP&gt;:&lt;/TD&gt;&lt;TD&gt;
		    &lt;SELECT NAME=&quot;agama&quot;&gt;
				&lt;OPTION VALUE=&quot;Islam&quot; SELECTED&gt;Islam
				&lt;OPTION VALUE=&quot;Katolik&quot;&gt;Katolik
				&lt;OPTION VALUE=&quot;Protestan&quot;&gt;Protestan
				&lt;OPTION VALUE=&quot;Hindu&quot;&gt;Hindu
				&lt;OPTION VALUE=&quot;Budha&quot;&gt;Budha
		    &lt;/SELECT&gt;
		  &lt;/TD&gt;
	   &lt;/TR&gt;

	   &lt;TR&gt;
		  &lt;TD valign=TOP&gt;Alamat&lt;/TD&gt;&lt;TD valign=TOP&gt;:&lt;/TD&gt;&lt;TD&gt;&lt;TEXTAREA NAME=&quot;alamat&quot; ROWS=&quot;3&quot; COLS=&quot;35&quot;&gt;&lt;/TEXTAREA&gt;&lt;/TD&gt;
	   &lt;/TR&gt;
	   &lt;TR&gt;
		  &lt;TD colspan=3&gt;&lt;INPUT TYPE=&quot;submit&quot; VALUE=&quot;SIMPAN&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;INPUT TYPE=&quot;reset&quot; VALUE=BATAL&gt;&lt;/TD&gt;
	   &lt;/TR&gt;
	   &lt;/TABLE&gt;

     &lt;/FORM&gt;
 &lt;/BODY&gt;
&lt;/HTML&gt;
</pre>
<p><strong>b. Membuat Script Save Data Siswa</strong></p>
<p>Untuk membuat script Simpan Data Siswa kedalam database, perhatikan script dibawah ini. Simpanlah dengan nama : <strong>siswa_save.php</strong>, letakan didalam folder kerja anda masing-masing.</p>
<pre class="brush: php;">
&lt;?
   include &quot;conndbsiswa.php&quot;;

   //tampung data
   $nis = $_POST['nis'];
   $nmsis = $_POST['nmsis'];
   $tmplhr = $_POST['tmplhr'];
   $tgllhr = $_POST['tgllhr'];
   $jnskel = $_POST['jnskel'];
   $agama = $_POST['agama'];
   $alamat = $_POST['alamat'];

   //simpan
   $query = &quot;insert into tbSISWA(nis, nmsis, tmplhr, tgllhr, jnskel, agama, alamat) values ('$nis', '$nmsis', '$tmplhr', '$tgllhr', '$jnskel', '$agama', '$alamat')&quot;;
   $simpan = mysql_query($query);

   if($simpan)
   {
	   echo&quot;&lt;CENTER&gt;&lt;H1&gt;BERHASIL TERSIMPAN&lt;/H1&gt;&lt;/CENTER&gt;&quot;;
	   echo&quot;&lt;BR&gt;&lt;BR&gt;&lt;A HREF=siswa_input.php&gt;Back To Input Siswa&lt;/A&gt;&lt;/CENTER&gt;&quot;;
   }
   else
   {
	   echo&quot;&lt;CENTER&gt;&lt;H1&gt;GAGAL TERSIMPAN&lt;/H1&gt;&lt;/CENTER&gt;&quot;;
	   echo&quot;&lt;BR&gt;&lt;BR&gt;&lt;A HREF=siswa_input.php&gt;Back To Input Siswa&lt;/A&gt;&lt;/CENTER&gt;&quot;;
   }
?&gt;
</pre>
Posted in Cyber Crime  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=115&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2009/04/14/membuat-aplikasi-web-sederhana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>
	</item>
		<item>
		<title>Variables on Java</title>
		<link>http://frieyadie.wordpress.com/2009/03/31/variables-on-java/</link>
		<comments>http://frieyadie.wordpress.com/2009/03/31/variables-on-java/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 08:48:14 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[java programming]]></category>
		<category><![CDATA[Variable Initialization]]></category>
		<category><![CDATA[Variables on Java]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=92</guid>
		<description><![CDATA[A typical program uses various values and these values keep changing while the program is running. For example, you create a program that is used to perform calculations, the values entered by one user will obviously be different from the values entered by another user. This also means that, when creating the program, you cannot [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=92&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a rel="attachment wp-att-94" href="http://frieyadie.wordpress.com/2009/03/31/variables-on-java/java/"><img class="size-medium wp-image-94 alignleft" title="java" src="http://frieyadie.files.wordpress.com/2009/03/java.png?w=118&#038;h=181" alt="java" width="118" height="181" /></a>A typical program uses various values and these values keep changing while the program is running. For example, you create a program that is used to perform calculations, the values entered by one user will obviously be different from the values entered by another user. This also means that, when creating the program, you cannot know all possible values that will be entered in your program. You should still be able to manage the values that the users will eventually enter in your program.<span id="more-92"></span>If you create a program used to perform calculations as introduced above, when a user enters a new value that would be involved in the calculation, to manage that value, you can (temporarily) store it in the computer memory. Since the values entered in a reserved memory area change regularly, they are called variables. Because neither you nor the compiler can predict all possible values that would be used, there are safeguards you can use. First, you must ask the compiler to reserve an area of memory for a value you intend to use. Asking the compiler to reserve an area of memory is referred to as Declaring a Variable. Remember that when you declare a variable, the compiler reserves an area of the compiler memory for you. Eventually, you can put the desired but appropriate values in that memory space.<!--more-->After declaring a variable, when you need the value stored in its memory area, you can ask the compiler to retrieve it and hand it to you. To effectively handle this transaction, the compiler would need two pieces of information from you: a name of your choice for the memory area that will be reserved, and the type of value that will be stored in that area of memory. Based on this, the formula to declare a variable is:</p>
<pre>
<pre class="brush: java;">
TypeOfValue VariableName
</pre>
</pre>
<p>As done in some languages like Pascal or Basic, we will start with the name.</p>
<p><span style="font-size:medium;"><strong>The Name of a Variable</strong></span></p>
<p>When you want the compiler to reserve an area of memory for some values used in your program, you must set a name, also called an identifier, that will allow you to refer to that area of memory. The name can be anything of your choice but there are rules you must follow:</p>
<ul>
<li>The name of a variable can be made of one letter (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, or Z) only</li>
<li>The name of a variable can start with a letter, an underscore &#8220;_&#8221;, or the dollar sign $. The name cannot start with a digit. If the name starts with an underscore, the second character must be an alphabetical letter</li>
<li>After the first character, the name of the variable can include letters, digits (0, 1, 2, 3, 4, 5, 6, 7, 8, or 9), or underscores in any combination</li>
<li>The name of a variable cannot be one of the words that the Java languages has reserved for its own use. A reserved word is also called a keyword. This means that you cannot use one of the following keywords to name your variable:</li>
</ul>
<table style="height:204px;" border="0" cellspacing="0" cellpadding="3" width="420">
<tbody>
<tr>
<td>abstract</td>
<td>assert</td>
<td>boolean</td>
<td>break</td>
<td>byte</td>
</tr>
<tr>
<td>case</td>
<td>catch</td>
<td>char</td>
<td>class</td>
<td>const</td>
</tr>
<tr>
<td>continue</td>
<td>default</td>
<td>do</td>
<td>double</td>
<td>else</td>
</tr>
<tr>
<td>enum</td>
<td>extends</td>
<td>final</td>
<td>finally</td>
<td>float</td>
</tr>
<tr>
<td>for</td>
<td>goto</td>
<td>if</td>
<td>implements</td>
<td>import</td>
</tr>
<tr>
<td>instanceof</td>
<td>int</td>
<td>interface</td>
<td>long</td>
<td>native</td>
</tr>
<tr>
<td>new</td>
<td>package</td>
<td>private</td>
<td>protected</td>
<td>public</td>
</tr>
<tr>
<td>return</td>
<td>short</td>
<td>static</td>
<td>strictfp</td>
<td>super</td>
</tr>
<tr>
<td>switch</td>
<td>synchronized</td>
<td>this</td>
<td>throw</td>
<td>throws</td>
</tr>
<tr>
<td>transient</td>
<td>try</td>
<td>void</td>
<td>volatile</td>
<td>while</td>
</tr>
</tbody>
</table>
<p>Beyond these rules as a foundation, you can add yours. For example, we will follow suggested standards of the Java documentation. The rules will follow are:</p>
<ul>
<li>A name will start with a letter in lowercase. Examples are age, f4, name, g_14, country</li>
<li>When a name is a combination of words, only the first name will start in lowercase. Examples are firstName, dateOfBirth, pi_314159</li>
<li>When the name is an abbreviation, we will use uppercase on all characters. Examples are EAU, UN, CIA, NSA</li>
</ul>
<p><span style="font-size:medium;"><strong>Variable Initialization</strong></span></p>
<p>After declaring a variable, you can store a value in the memory reserved for it. When you have just declared a variable, it may not hold a significant value. To know the value it has, you should put an initial value into that memory space. Putting an initial value is referred to as initializing the variable.</p>
<p>To initialize a variable, on the right side of its name, type the assignment operator, followed by the value you want to put in the reserved memory. As we will see in the next few sections, you cannot and should not put just any type of value in a variable. We will see that there are different types used for different variables.</p>
<p>After declaring a variable and once it has a value, to display that value, you can provide the name of the variable to the parentheses (in future lessons, we will learn that this is referred to as passing) of the System.out.print() method.</p>
<p>Source :<a href="http://www.functionx.com" target="_blank"> functionx.com</a></p>
Posted in Java, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=92&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2009/03/31/variables-on-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>

		<media:content url="http://frieyadie.files.wordpress.com/2009/03/java.png?w=161" medium="image">
			<media:title type="html">java</media:title>
		</media:content>
	</item>
		<item>
		<title>Tipe Data pada Pascal</title>
		<link>http://frieyadie.wordpress.com/2009/03/30/tipe-data-pada-pascal/</link>
		<comments>http://frieyadie.wordpress.com/2009/03/30/tipe-data-pada-pascal/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 14:33:34 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[Cyber Crime]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/2009/03/30/tipe-data-pada-pascal/</guid>
		<description><![CDATA[Tipe data menunjukkan suatu nilai yang dapat digunakan oleh variable. Tipe data sederhana terbagi menjadi beberapa bagian :
Tipe Data Character,  Tipe Data String, Tipe Data Boolean, Tipe Data Integer (Bilangan Bulat) dan Tipe Data Real. Berikut Penjelasan masing-masing Tipe Data

Tipe data Char (Karakter)
Terdiri dari satu huruf besar/kecil,
angka (tidak untuk dihitung), atau karakter khusus. Ditulis [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=74&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Tipe data menunjukkan suatu nilai yang dapat digunakan oleh variable. Tipe data sederhana terbagi menjadi beberapa bagian :</p>
<p>Tipe Data Character,  Tipe Data String, Tipe Data Boolean, Tipe Data Integer (Bilangan Bulat) dan Tipe Data Real. Berikut Penjelasan masing-masing Tipe Data<span id="more-74"></span></p>
<ol type="A">
<li><strong>Tipe data Char (Karakter)</strong><br />
Terdiri dari satu huruf besar/kecil,<br />
angka (tidak untuk dihitung), atau karakter khusus. Ditulis diantara 2 tanda petik tunggal.<br />
Contoh: &#8216;A&#8217;, &#8216;a&#8217;, &#8216;5&#8242;, &#8216;@&#8217;</li>
<li><strong>Tipe data String (Untaian Karakter)</strong><br />
Berupa rangkaian karakter yang<br />
terletak diantara 2 tanda petik. Panjang dari suatu string sebaiknya<br />
disebutkan pada bagian deklarasi dengan tanda [n], jika tidak panjangnya dianggap 255 karakter.<br />
Contoh: &#8216;Frieyadie&#8217;, &#8216;Jl. Kramat Raya No. 25&#8242;, &#8216;31908565&#8242;</li>
<li><strong>Tipe data Boolean</strong><br />
Berupa nilai logika, yaitu :</p>
<ul>
<li>True untuk menyatakan kondisi Benar</li>
<li>False untuk menyatakan kondisi Salah</li>
</ul>
</li>
<li><strong>Tipe data Integer (Bilangan Bulat)</strong><br />
Adalah tipe bilangan yang tidak memiliki bagian desimal. Termasuk tipe numerik, yaitu dapat dioperasikan secara matematik.</p>
<table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr align="middle" bgcolor="#ff9900">
<td width="100">Tipe</td>
<td width="150">Ukuran Memori</td>
<td>Jangkauan</td>
</tr>
<tr>
<td>ShortInt</td>
<td>1 byte</td>
<td>-128 .. 127</td>
</tr>
<tr>
<td>Byte</td>
<td>1 byte</td>
<td>0 .. 255</td>
</tr>
<tr>
<td>Integer</td>
<td>2 byte</td>
<td>-32768 .. 32767</td>
</tr>
<tr>
<td>Word</td>
<td>2 byte</td>
<td>0 .. 65535</td>
</tr>
<tr>
<td>LongInt</td>
<td>4 byte</td>
<td>-2147483648 .. 2147483647</td>
</tr>
</tbody>
</table>
<p>Tipe integer menyediakan konstanta standar MaxInt yang bernilai 32767 dan MaxLongInt yang bernilai 2147483647.</li>
<li><strong>Tipe Data Real (Pecahan)</strong><br />
Adalah tipe bilangan yang memiliki bagian desimal. Termasuk tipe numerik, yaitu dapat dioperasikan secara matematik.</p>
<table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr align="middle" bgcolor="#ff9900">
<td>Tipe</td>
<td>Ukuran Memori</td>
<td>Jangkauan</td>
<td>Digit Signifikan</td>
</tr>
<tr>
<td>Single</td>
<td>4 byte</td>
<td>1.5E-45 .. 3.4E+38</td>
<td>7 – 8</td>
</tr>
<tr>
<td>Real</td>
<td>6 byte</td>
<td>2.9E-39 .. 1.7E+38</td>
<td>11 – 12</td>
</tr>
<tr>
<td>Double</td>
<td>8 byte</td>
<td>5.0E-324 .. 1.7E+308</td>
<td>15 – 16</td>
</tr>
<tr>
<td>Extended</td>
<td>10 byte</td>
<td>1.9E-4951 .. 1.1E +4932</td>
<td>19 – 20</td>
</tr>
</tbody>
</table>
</li>
</ol>
<pre>
<pre>
<pre class="brush: delphi;">
Program Contoh_Tipe_Data ;
Var
    Nilai_Akhir : Integer ;
    Nilai_Rata2 : Real ;
    Grade : Char ;
    Keterangan : String [5] ;
    Kondisi : Boolean ;
Begin
    Nilai_Akhir := 87 ;
    Nilai_Rata2:= 87.25 ;
    Grade:= 'A' ;
    Keterangan:= 'Lulus' ;
    Kondisi:= True ;

    Writeln('Nilai Akhir adalah ', Nilai_Akhir);
    Writeln('Nilai Rata-rata adalah ', Nilai_Rata2);
    Writeln('Gradenya adalah ', Grade);
    Writeln('Keterangannya adalah ', Keterangan);
    Writeln('Kondisinya adalah ', Kondisi);
    ReadLn;
End.
</pre>
</pre>
</pre>
Posted in Cyber Crime  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=74&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2009/03/30/tipe-data-pada-pascal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>
	</item>
		<item>
		<title>Pengenalan Keamanan Jaringan</title>
		<link>http://frieyadie.wordpress.com/2009/03/21/pengenalan-keamanan-jaringan/</link>
		<comments>http://frieyadie.wordpress.com/2009/03/21/pengenalan-keamanan-jaringan/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 06:27:50 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[Keamanan Jaringan Komputer]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=66</guid>
		<description><![CDATA[Pengelolaan terhadap keamanan dapat dilihat dari sisi pengelolaan resiko (risk management). Lawrie Brown dalam &#8220;Lecture Notes for Use with Cryptography and Network Security by William Stallings&#8221; menyarankan menggunakan &#8220;Risk Management Model&#8221; untuk menghadapi ancaman (managing threats).
Ada tiga komponen yang memberikan kontribusi kepada Risk, yaitu Asset, Vulnerabilities, dan Threats.
Klasifikasi Kejahatan Komputer
Berdasarkan lubang keamanan, keamanan dapat diklasifikasikan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=66&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a rel="attachment wp-att-79" href="http://frieyadie.wordpress.com/2009/03/21/pengenalan-keamanan-jaringan/lock/"><img class="alignleft size-thumbnail wp-image-79" title="lock" src="http://frieyadie.files.wordpress.com/2009/03/lock.gif?w=159&#038;h=159" alt="lock" width="159" height="159" /></a>Pengelolaan terhadap keamanan dapat dilihat dari sisi pengelolaan resiko (risk management). Lawrie Brown dalam &#8220;<strong>Lecture Notes for Use with Cryptography and Network Security by William Stallings&#8221; </strong>menyarankan menggunakan &#8220;<em>Risk Management Model</em>&#8221; untuk menghadapi ancaman (<em>managing threats</em>).</p>
<p>Ada tiga komponen yang memberikan kontribusi kepada Risk, yaitu <em>Asset</em>, <em>Vulnerabilities</em>, dan <em>Threats</em>.<span id="more-66"></span></p>
<p><strong>Klasifikasi Kejahatan Komputer</strong></p>
<p>Berdasarkan lubang keamanan, keamanan dapat diklasifikasikan menjadi empat, yaitu:</p>
<p><strong>Keamanan yang bersifat fisik </strong>(<em>physical security</em>): termasuk akses orang ke gedung, peralatan, dan media yang digunakan.Aspek dari keamanan Jaringan</p>
<p><strong>Keamanan yang berhubungan dengan orang (personel)</strong>:termasuk identifikasi, dan profil resiko dari orang yang mempunyai akses (pekerja).</p>
<p><strong>Keamanan dari data dan media serta teknik komunikasi</strong>(<em>communications</em>). termasuk juga kelemahan dalam software yang digunakan untuk mengelola data.</p>
<p><strong>Keamanan dalam operasi</strong>: termasuk kebijakan (<em>policy</em>) dan prosedur yang digunakan untuk mengatur dan mengelola sistem keamanan, dan juga termasuk prosedur setelah serangan (<em>post attack recovery</em>).</p>
<p>Garfinkel dalam &#8220;<em>Practical UNIX &amp; Internet Security</em>&#8221; mengemukakan bahwa keamanan komputer <em>(computer security</em>) melingkupi empat aspek, yaitu privacy, integrity, authentication, dan availability. Selain hal di atas, ada dua aspek yang ada kaitannya dengan <em>electronic commerce</em>, yaitu access control dan non-repudiation.</p>
<p><strong>1. Privacy / Confidentiality </strong></p>
<p>Privacy / Confidentiality adalah usaha untuk menjaga informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-data yang sifatnya privat sedangkan confidentiality berhubungan dengan data yang diberikan ke pihak lain untuk keperluan tertentu.</p>
<p><strong>2. Integrity </strong></p>
<p>Aspek Integrity menekankan Informasi tidak boleh diubah tanpa seijin pemilik informasi. Serangan : virus, <em>trojan horse</em>, atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja &#8220;ditangkap&#8221; (<em>intercept</em>) di tengah jalan, diubah isinya (<em>altered</em>, <em>tampered, modified</em>), kemudian diteruskan ke alamat yang dituju. Penanggulangan : Penggunaan <em>enkripsi </em>dan <em>digital signature.</em></p>
<p><strong>3. Authentication</strong></p>
<p>Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli.</p>
<p>Penanggulangan :<br />
Membuktikan keaslian dokumen dengan teknologi watermarking dan digital signature. Watermarking dapat digunakan untuk menjaga “intelectual property”, yaitu dengan menandai dokumen atau hasil karya dengan “tanda tangan” pembuat.<br />
Access control, yaitu berkaitan dengan pembatasan orang yang dapat mengakses informasi.</p>
<p><strong>4. Availability</strong></p>
<p>Aspek availability atau ketersediaan berhubungan dengan ketersediaan informasi ketika dibutuhkan.<br />
Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi.<br />
Serangan :<br />
1. &#8220;Denial of Service Attack” (DoS attack)<br />
2. Mailbomb</p>
<p><strong>5. Access Control</strong></p>
<p>Aspek ini berhubungan dengan cara pengaturan akses kepada informasi. Hal ini biasanya berhubungan dengan klasifikasi data (public, private, confidential, top secret) &amp; user (guest, admin, top manager, dsb.),</p>
<p><strong>6. Non-repudiation</strong></p>
<p>Aspek ini menjaga agar seseorang tidak dapat menyangkal telah melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan email untuk memesan barang tidak dapat menyangkal bahwa dia telah mengirimkan email tersebut.<br />
Penggunaan digital signature, certifiates, dan teknologi kriptografi secara umum dapat menjaga aspek ini. Akan tetapi hal ini masih harus didukung oleh hukum sehingga status dari digital signature itu jelas legal.</p>
<ul>
<li>Destructive Devices adalah sekumpulan program virus yang dibuat khusus untuk melakukan penghancuran data-data, di antaranya Trojan Horse, Worms, Email Bombs, dan Nukes.</li>
<li>Scanner adalah sebuah program yang secara otomatis akan mendeteksi kelemahan (security weaknesses) sebuah komputer di jaringan lokal (local host) ataupun komputer di jaringan dengan lokasi lain (remote host). Oleh karena itu, dengan menggunakan program ini, seorang hacker yang secara fisik berada di Inggris dapat dengan mudah menemukan security weaknesses pada sebuah server di Amerika ataupun di belahan dunia lainnya, termasuk di Indonesia, tanpa harus meninggalkan ruangannya!</li>
</ul>
Posted in Keamanan Jaringan Komputer  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=66&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2009/03/21/pengenalan-keamanan-jaringan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>

		<media:content url="http://frieyadie.files.wordpress.com/2009/03/lock.gif?w=96" medium="image">
			<media:title type="html">lock</media:title>
		</media:content>
	</item>
		<item>
		<title>Panduan Pemrograman C++</title>
		<link>http://frieyadie.wordpress.com/2009/02/07/panduan-pemrograman-c/</link>
		<comments>http://frieyadie.wordpress.com/2009/02/07/panduan-pemrograman-c/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 07:46:10 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Fungsi]]></category>
		<category><![CDATA[Makro]]></category>
		<category><![CDATA[Mengenal Bahasa C++]]></category>
		<category><![CDATA[Mengenal Model Data]]></category>
		<category><![CDATA[Menggunakan Fungsi String]]></category>
		<category><![CDATA[Menggunakan Pointer]]></category>
		<category><![CDATA[MFC Control]]></category>
		<category><![CDATA[Object Oriented Programming]]></category>
		<category><![CDATA[Operasi Kondisi]]></category>
		<category><![CDATA[Operator pada C++]]></category>
		<category><![CDATA[Panduan Pemrograman C++]]></category>
		<category><![CDATA[Perintah Masukan dan Keluaran]]></category>
		<category><![CDATA[Perintah Perulangan]]></category>
		<category><![CDATA[Pointer]]></category>
		<category><![CDATA[Structure C++]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Variabel Array]]></category>
		<category><![CDATA[Visual C++]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=61</guid>
		<description><![CDATA[Bahasa Pemrograman C++ Dan Visual C++ merupakan bahasa pemrograman pertengahan yang powerfull, namun sangat mudah dipelajari dan dipahami.
Buku ini akan membantu Anda untuk menguasainya dengan mudah dan cepat. Materinya sengaja dikemas dalam tahap yang saling berhubungan. Juga disertai berbagai latihan untuk mempercepat pemahamannya. Dengan menguasai bahasa pemrograman C++, anda tidak akan kesulitan jika anda mempelajari [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=61&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-full wp-image-19" src="http://kwitang.info/wp-content/uploads/2009/02/panduancpp.jpg" alt="panduancpp" width="130" height="184" />Bahasa Pemrograman C++ Dan Visual C++ merupakan bahasa pemrograman pertengahan yang powerfull, namun sangat mudah dipelajari dan dipahami.<br />
Buku ini akan membantu Anda untuk menguasainya dengan mudah dan cepat. Materinya sengaja dikemas dalam tahap yang saling berhubungan. Juga disertai berbagai latihan untuk mempercepat pemahamannya. Dengan menguasai bahasa pemrograman C++, anda tidak akan kesulitan jika anda mempelajari bahasa pemrograman lainnya, seperti Web Programming with PHP, Pemrograman Java, Perograman C#, oleh karena itu mulailah belajar dari yang mudah, yaitu C++<span id="more-61"></span></p>
<p>Judul             : Panduan Pemrograman C++<br />
Author          : <a title="Frieyadie Official Homepage" href="http://www.frieyadie.com" target="_blank">Frieyadie</a><br />
ISBN               : 979-763-369-1<br />
Halaman       : xii + 292 hlm.<br />
Ukuran          : 16 x 23 Cm.<br />
Cetakan         :  I, 2006   ; II, 2007 ;   III, 2008<br />
Harga Awal  : Rp.36500</p>
<p><em><strong>Daftar Isi :</strong></em></p>
<p>Prakata<br />
Bab 1 Mengenal Bahasa C++<br />
Bab 2 Mengenal Model Data, Perintah Masukan dan Keluaran<br />
Bab 3 Operator pada C++<br />
Bab 4 Operasi Kondisi<br />
Bab 5 Perintah Perulangan<br />
Bab 6 Menggunakan Fungsi String<br />
Bab 7 Variabel Array<br />
Bab 8 Menggunakan Pointer<br />
Bab 9 Fungsi<br />
Bab 10 Makro<br />
Bab 11 Struktur<br />
Bab 12 Object Oriented Programming (OOP)<br />
Bab 13 Bekerja dengan File<br />
Bab 14 Mengenal Visual C++<br />
Bab 15 Menggunakan MFC Control</p>
Posted in C++, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=61&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2009/02/07/panduan-pemrograman-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>

		<media:content url="http://kwitang.info/wp-content/uploads/2009/02/panduancpp.jpg" medium="image">
			<media:title type="html">panduancpp</media:title>
		</media:content>
	</item>
		<item>
		<title>Panduan Praktis Microsoft Access 2003</title>
		<link>http://frieyadie.wordpress.com/2009/02/07/panduan-praktis-microsoft-access-2003/</link>
		<comments>http://frieyadie.wordpress.com/2009/02/07/panduan-praktis-microsoft-access-2003/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 07:30:31 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=58</guid>
		<description><![CDATA[Microsoft Access 2003 merupakan software database yang sangat mudah dipelajari dan dipahami.  Bukan hanya sekedar software database, Anda bisa juga merancang dan merelasikan tabel-tabel, query, form, report, macro dan switchboard dengan mudah dan singkat untuk membuat dan menyesuaikan aplikasi database.
Belajarlah mulai dari yang mudah, dengan belajar dengan Panduan Praktis Microsoft Access 2003, anda bisa membuat [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=58&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://kwitang.info/wp-content/uploads/2009/02/bukuaccess.jpg"><img class="alignleft size-full wp-image-33" src="http://kwitang.info/wp-content/uploads/2009/02/bukuaccess.jpg" alt="bukuaccess" width="104" height="153" /></a>Microsoft Access 2003 merupakan software database yang sangat mudah dipelajari dan dipahami.  Bukan hanya sekedar software database, Anda bisa juga merancang dan merelasikan tabel-tabel, query, form, report, macro dan switchboard dengan mudah dan singkat untuk membuat dan menyesuaikan aplikasi database.<br />
Belajarlah mulai dari yang mudah, dengan belajar dengan Panduan Praktis Microsoft Access 2003, anda bisa membuat suatu aplikasi database secara utuh dan desain database yang normalisasi.<span id="more-58"></span>Buku ini memandu dan membantu Anda membuat aplikasi database sederhana melalui contoh kasus Sistem Penjualan Secara Tunai/Kredit.<br />
Judul          : Panduan Praktis Microsoft Access 2003<br />
ISBN           : 979-731-422-7<br />
Penulis      :    <a title="Frieyadie Official Homepage" href="http://www.frieyadie.com" target="_blank">Frieyadie </a><br />
Ukuran      : 14&#215;21<br />
Halaman   : viii+144 halaman<br />
Edisi/Cetakan     I, 3th Published<br />
Thn Terbit     2007<br />
Harga     Rp. 19.500,-</p>
<p>DAFTAR ISI:</p>
<p>Pengenalan Microsoft Access 2003<br />
Modifikasi Tabel dan Pengolahan Record<br />
Pengurutan dan Penyeleksian Data<br />
Relasi Antartabel<br />
Query<br />
Form<br />
Report<br />
Makro dan Switchboard<br />
Visual Basic for Application</p>
Posted in Database  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=58&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2009/02/07/panduan-praktis-microsoft-access-2003/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>

		<media:content url="http://kwitang.info/wp-content/uploads/2009/02/bukuaccess.jpg" medium="image">
			<media:title type="html">bukuaccess</media:title>
		</media:content>
	</item>
		<item>
		<title>Object Oriented Programming</title>
		<link>http://frieyadie.wordpress.com/2008/12/02/object-oriented-programming/</link>
		<comments>http://frieyadie.wordpress.com/2008/12/02/object-oriented-programming/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 14:19:08 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Encapsulation]]></category>
		<category><![CDATA[Inheritance]]></category>
		<category><![CDATA[java programming]]></category>
		<category><![CDATA[Method]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Object Oriented Programming]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=53</guid>
		<description><![CDATA[Merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=53&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a rel="attachment wp-att-110" href="http://frieyadie.wordpress.com/2008/12/02/object-oriented-programming/oop/"><img class="alignleft size-full wp-image-110" title="oop" src="http://frieyadie.files.wordpress.com/2008/12/oop.png?w=219&#038;h=146" alt="oop" width="219" height="146" /></a>Merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.<br />
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. <span id="more-53"></span><strong>Konsep Class dan Object</strong></p>
<p>Class merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Bisa dikatakan Class merupakan rancangan dari sebuah model Object.<br />
Object merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. Object membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer. Bisa dikatakan object merupakan perwujudan dari sebuah class.</p>
<p>Memandang suatu object terdapat 2(dua) hal yang harus dipahami, yaitu : Attribute dan Behaviour.</p>
<ol>
<li>Attribut, adalah segala sesuatu yang melekat pada diri objek. Sebagai contoh melihat objek buku, atribut-atribut yang dimiliki, diantaranya : judul, penulis, penerbit, tahun terbit, ketebalan, harga, dan lain-lain. Attribut ini yang pada pemrograman berbasis objek menjadi yang disebut dengan variabel.</li>
<li>Behaviour, adalah segala perilaku yang terdapat pada diri objek. Sebagai contoh, melihat objek mobil, behaviour yang dimiliki, diantaranya : berjalan maju, berjalan mundur, belok kekiri, belok kenanan, ngebut, dan lain-lain. Behaviour ini yang pada pemrograman berbasis objek menjadi yang disebut dengan method atau function</li>
</ol>
<p>Bentuk penulisan class, seperti dibawah ini :</p>
<pre>
<pre class="brush: java;">
[public | private] [abstract] class Nama_Class
{
     ... daftar property...
     ... daftar method ...
}
</pre>
</pre>
<p><strong>Method</strong></p>
<p>Method adalah Implementasi operasi yang bisa dilakukan oleh Class dan Object. Operasi-operasi yang dilakukan oleh methode, diantaranya, yaitu :</p>
<ul>
<li>Menerima dan memanipulasi data atau field.</li>
<li>Mempengaruhi Object lain</li>
</ul>
<p>Berikut bentuk penulisan deklarasi method:</p>
<pre>
<pre class="brush: java;">
Tipe_Akses Tipe_Return NamaMethod(Argumen1, Argumen2, ..., Argumen-N)
{
... Badan / Tubuh Method ..
}
</pre>
</pre>
<p>Tipe Akses, menyatakan tingkatan akses untuk memproteksi akses terhadap data-data didalam method, tipe akses ini bersifat opsional.<br />
Tipe Return, menyatakan nilai hasil yang diolah oleh method akan dikembalkan atau akan mengirimkan kepada objek yang memanggil method. Bentuk Tipe Return, bisa berupa tipe data primitive yaitu integer, float, double dan lain-lain.<br />
Apabila method tidak akan mengembalikan nilai kepada objek yang memanggilnya, maka bisa dituliskan didepan nama method dengan perintah void.</p>
<p>Sebagai contoh penulisan class yang berisikan property list dan method</p>
<pre>
<pre class="brush: java;">
class Buku
{
      String judul, penulis, penerbit;
      int tahunTerbit;
      double hargaBuku;

      void tampilBuku()
      {
           System.out.println(&quot;Judul Buku    : &quot; + judul);
           System.out.println(&quot;Penulis    : &quot; + penulis);
           System.out.println(&quot;Penerbit    : &quot; + penerbit);
           System.out.println(&quot;Tahun Terbit    : &quot; + tahunTerbit);
           System.out.println(&quot;Harga Buku  Rp. &quot; + harga);
       }
}
</pre>
</pre>
<p><strong>Encapsulation</strong></p>
<p>Adalah pembungkusan property object sedemikian rupa, sehingga tidak dapat diakses secara langsung dari luar. Hal ini dilakukan untuk menghindari interferensi dari luar dan lebih menyederhanakan program.</p>
<p>Dalam penulisan class terdapat beberapa modifier, diantaranya yaitu :</p>
<ol>
<li>Public, mendefinisikan suatu class dapat diakses dari luar class.</li>
<li>Private  mendefinisikan suatu class tidak dapat diakses sama class yang lain sama sekali.</li>
<li>Protected digunakan untuk membatasi akses class yang dilakukan oleh subclass  turunannya (inheritance)dan class yang lain dari package yang sama</li>
<li>Abstract medefinisikan class tidak dapat diinstansiasi langusng menjadi object. Modifier ini hanya digunakan bila class tersebut  terletak pada hirarki yang lebih tinggi, sehingga dapat mungkin diturunkan sebagai subclass bukan instansiasi menjadi objek.</li>
<li>Final menyatakan suatu class tidak dapat diturunkan menjadi subclass (inheritance)</li>
</ol>
<p>Contoh : simpan dengan nama <strong>HitungLingkaran.java</strong></p>
<pre>
<pre class="brush: java;">
import java.text.NumberFormat;

class Lingkaran
{
      private double luas, keliling;

      public double hitLuas(int jarijari)
      {
            return luas = Math.PI * jarijari * jarijari;
      }

      public double hitKeliling(int jarijari)
      {
           return luas = 2 * Math.PI * jarijari;
      }
}

public class HitungLingkaran
{
     public static void main(String[] args)
     {
         Lingkaran bulet = new Lingkaran();

         NumberFormat atur = NumberFormat.getInstance(); 

         //membatasi jumlah digit dibelakang koma
         atur.setMinimumFractionDigits(2);

         System.out.println(&quot;Luas Lingkaran     : &quot; + atur.format(bulet.hitLuas(5)));
         System.out.println(&quot;Keliling Lingkaran : &quot; + atur.format(bulet.hitKeliling(4)));
    }
}
</pre>
</pre>
<p><strong><span style="font-size:small;">Constructor</span></strong></p>
<p>Adalah suatu method yang memiliki nama yang sama dengan nama class, tidak memiliki nilai balik (return value) dan biasanya memiliki instruksi untuk memberikan nilai inisialisasi untuk variabel-variabel yang akan dimiliki oleh objek. Konstruktor ini dipanggil pada saat proses instansiasi class menjadi object.</p>
<p>Contoh Constructor : simpan dengan nama <strong>Balok.java</strong></p>
<pre>
<pre class="brush: java;">
class Balok
{
     private int panjang, lebar, tinggi, volume;
     public Balok(int panjang, int lebar, int tinggi)
     {
          this.panjang = panjang;
          this.lebar = lebar;
          this.tinggi = tinggi;
     }

    protected int hitvolume()
    {
         return this.volume = this.panjang * this.lebar * this.tinggi;
    }

    public void TampilBalok()
    {
        System.out.println(&quot;Panjang : &quot; + this.panjang);
        System.out.println(&quot;lebar   : &quot; + this.lebar);
        System.out.println(&quot;Tinggi  : &quot; + this.tinggi);
    }
}
</pre>
</pre>
<p>Simpan dengan nama <strong>BalokKonstruktor.java</strong></p>
<pre>
<pre class="brush: java;">
public class BalokKonstruktor
{
    public static void main(String[] args)
    {
         Balok balokku = new Balok(10, 3, 2);
         balokku.TampilBalok();
         System.out.println(&quot;Tinggi  : &quot; + balokku.hitvolume());
    }
}
</pre>
</pre>
<p>this(), digunakan untuk mengakses variabel instant dari masing-masing object dan menyatakan terjadi pemanggilan terhadap constructor pada class yang sama.</p>
<p><strong>Inheritance</strong></p>
<p>Inheritance atau pewarisan adalah konsep yang dimiliki oleh Object Oriented Programming yang memiliki kemampuan untuk mengembangkan class yang sudah ada menjadi class baru. Dalam proses pewarisan ini data dan method yang dimiliki oleh suatu class akan diwariskan seluruhnya kepada class pewarisnya.</p>
<p>Suatu class yang mewariskan disebut dengan Super Class atau Class Induk. Sedangkan class yang diwariskan disebut dengan SubClass atau Class Sub atau Class Anak.<br />
Suatu method diclass anak memiliki nama yang sama dengan method diclass induknya disebut dengan Override (Overriding).</p>
<p>Overriding adalah kemampuan class anak untuk memodifikasi atau mendefinisikan kembali data dan method dari kelas induknya.</p>
<p>Untuk mengaplikasikan konsep inheritance didalam program, dengan menggunakan kata kunci extends.<br />
Sifat lain perwarisan yaitu Overloading, yaitu penggunaan satu nama class untuk beberapa method yang berbeda parameter.</p>
<pre>
<pre class="brush: java;">
class Lingkaran
{
   private double jari2;
   public Lingkaran()
   {
        jari2 = 2.5;
   }

   public Lingkaran(double d)
   {
	this();
	setJARI(d);
    }

    public void setJARI(double r)
    {
	if (r &amp;amp;amp;gt; 0)
	   jari2 = r;
    }

    public double getJARI()
    {
	return jari2;
    }

    public double luas()
    {
	return Math.PI * jari2 * jari2;
    }

    public double keliling()
    {
	return 2 * Math.PI * jari2;
    }
}

class Silinder extends Lingkaran
{
    private double tinggi;

    public Silinder(double r, double t)
    {
	super(r);
	setTinggi(t);
    }	

    public void setTinggi(double t)
    {
	if(t&amp;amp;amp;gt;0)
	tinggi = t;
    }

    public double getTinggi()
    {
	 return tinggi;
    }

    public double luas()
    {
	double luasling1 = 2 * super.luas();
	double luasling2 = tinggi * super.keliling();
	return luasling1 + luasling2;
    }

    public double volume()
    {
	return tinggi * super.luas();
    }
}

class TestSilinder
{
    public static void main(String[] args)
    {
	   Silinder xyz = new Silinder(3, 7);

	   System.out.println(&quot;\n\nInformasi Objek XYZ&quot;);
	   System.out.println(&quot;------------------------&quot;);
	   System.out.println(&quot;Nilai Jari Jari : &quot; + xyz.getJARI());
	   System.out.println(&quot;Nilai Tinggi    : &quot; + xyz.getTinggi());
	   System.out.println(&quot;Nilai Luas      : &quot; + xyz.luas());
	   System.out.println(&quot;Nilai Volume    : &quot; + xyz.volume());
     }
}
</pre>
</pre>
Posted in Java  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=53&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2008/12/02/object-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>

		<media:content url="http://frieyadie.files.wordpress.com/2008/12/oop.png" medium="image">
			<media:title type="html">oop</media:title>
		</media:content>
	</item>
		<item>
		<title>The Syntax of C and C++ Function Pointers</title>
		<link>http://frieyadie.wordpress.com/2008/06/03/the-syntax-of-c-and-c-function-pointers/</link>
		<comments>http://frieyadie.wordpress.com/2008/06/03/the-syntax-of-c-and-c-function-pointers/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 05:50:50 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Function Pointer]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=42</guid>
		<description><![CDATA[2.1  Define a Function Pointer
Regarding their syntax, there are two different types of function pointers: On the one hand there are pointers to ordinary C functions or to static C++ member functions. On the other hand there are pointers to non-static C++ member functions. The basic difference is that all pointers to non-static member functions [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=42&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h3>2.1  Define a Function Pointer</h3>
<p>Regarding their syntax, there are two different types of function pointers: On the one hand there are pointers to ordinary C functions or to static C++ member functions. On the other hand there are pointers to <strong>non-static</strong> C++ member functions. The basic difference is that all pointers to non-static member functions need a <strong>hidden argument</strong>: The this-pointer to an instance of the class. Always keep in mind: These two types of function pointers are incompatible with each other.<span id="more-42"></span></p>
<p>Since a function pointer is nothing else than a variable, it must be defined as usual. In the following example we define three function pointers named <em>pt2Function</em>, <em>pt2Member</em> and <em>pt2ConstMember</em>. They point to functions, which take one <em>float</em> and two <em>char</em> and return an <em>int</em>. In the C++ example it is assumed, that the functions, our pointers point to, are (non-static) member functions of <em>TMyClass</em>.</p>
<p><!-- Code 2.1 Define a Function Pointer --></p>
<div><code><span style="color:#000000;"><span style="color:#000080;"><em>// 2.1 define a function pointer and initialize to NULL</em></span> <strong>int</strong> (*pt2Function)(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>) = NULL; <span style="color:#000080;"><em>// C</em></span> <strong>int</strong> (TMyClass::*pt2Member)(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>) = NULL; <span style="color:#000080;"><em>// C++</em></span> <strong>int</strong> (TMyClass::*pt2ConstMember)(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>) <strong>const</strong> = NULL; <span style="color:#000080;"><em>// C++</em></span><a name="callconv"></a></span></code></div>
<p><code><span style="color:#000000;"></p>
<div class="RightMargin">
<h3>2.2  Calling Convention</h3>
</div>
<p>Normally you don't have to think about a function's calling convention: The compiler assumes <em>__cdecl</em> as default if you don't specify another convention. However if you want to know more, keep on reading ... The calling convention tells the compiler things like how to pass the arguments or how to generate the name of a function. Some examples for other calling conventions are <em>__stdcall</em>, <em>__pascal</em> and <em>__fastcall</em>. The calling convention belongs to a function's signature: <strong>Thus functions and function pointers with different calling convention are incompatible with each other!</strong> For Borland and Microsoft compilers you specify a specific calling convention between the return type and the function's or function pointer's name. For the GNU GCC you use the __attribute__ keyword: Write the function definition followed by the keyword __attribute__ and then state the calling convention in double parentheses. If someone knows more: <a href="http://frieyadie.wordpress.com/contact.html">Let me know</a> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  And if you want to know how function calls work under the hood you should take a look at the chapter <em>Subprograms</em> in Paul Carter's <a href="http://www.drpaulcarter.com/pcasm/">PC Assembly Tutorial</a>.</p>
<p><!-- Code 2.2 define the calling convention --><code><span style="color:#000080;"><em>// 2.2 define the calling convention</em></span> <strong>void __cdecl</strong> DoIt(<strong>float</strong> a, <strong>char</strong> b, <strong>char</strong> c); <span style="color:#000080;"><em>// Borland and Microsoft</em></span> <strong>void</strong> DoIt(<strong>float</strong> a, <strong>char</strong> b, <strong>char</strong> c) __attribute__((<strong>cdecl</strong>)); <span style="color:#000080;"><em>// GNU GCC</em></span> </code><a name="assign"></a></p>
<div class="RightMargin">
<h3>2.3  Assign an address to a Function Pointer</h3>
</div>
<p>It's quite easy to assign the address of a function to a function pointer. You simply take the name of a suitable and known function or member function. Although it's optional for most compilers you should use the address operator &amp; infront of the function's name in order to write portable code. You may have got to use the complete name of the member function including class-name and scope-operator (::). Also you have got to ensure, that you are allowed to access the function right in scope where your assignment stands.</p>
<p><!-- Code 2.3 Assign an Address to a Function Pointer --></p>
<p><code><span style="color:#000080;"><em>// 2.3 assign an address to the function pointer // Note: Although you may ommit the address operator on most compilers // you should always use the correct way in order to write portable code.</em></span> <span style="color:#000080;"><em>// C</em></span> <strong>int</strong> DoIt (<strong>float</strong> a, <strong>char</strong> b, <strong>char</strong> c){ printf(<span style="color:#0000ff;">"DoIt\n"</span>); <strong>return</strong> a+b+c; } <strong>int</strong> DoMore(<strong>float</strong> a, <strong>char</strong> b, <strong>char</strong> c)<strong>const</strong>{ printf(<span style="color:#0000ff;">"DoMore\n"</span>); <strong>return</strong> a-b+c; } pt2Function = DoIt; <span style="color:#000080;"><em>// short form</em></span> pt2Function = &amp;DoMore; <span style="color:#000080;"><em>// correct assignment using address operator</em></span> <span style="color:#000080;"><em>// C++</em></span> <strong>class</strong> TMyClass { <strong>public</strong>: <strong>int</strong> DoIt(<strong>float</strong> a, <strong>char</strong> b, <strong>char</strong> c){ cout &lt;&lt; <span style="color:#0000ff;">"TMyClass::DoIt"</span>&lt;&lt; endl; <strong>return</strong> a+b+c;}; <strong>int</strong> DoMore(<strong>float</strong> a, <strong>char</strong> b, <strong>char</strong> c) <strong>const</strong> { cout &lt;&lt; <span style="color:#0000ff;">"TMyClass::DoMore"</span> &lt;&lt; endl; <strong>return</strong> a-b+c; }; <span style="color:#000080;"><em>/* more of TMyClass */</em></span> }; pt2ConstMember = &amp;TMyClass::DoMore; <span style="color:#000080;"><em>// correct assignment using address operator</em></span> pt2Member = &amp;TMyClass::DoIt; <span style="color:#000080;"><em>// note: &lt;pt2Member&gt; may also legally point to &amp;DoMore</em></span></code> <a name="compare"></a></p>
<div class="RightMargin">
<h3>2.4  Comparing Function Pointers</h3>
</div>
<p>You can use the comparison-operators (==, !=) the same way as usual. In the following example it is checked, whether <em>pt2Function</em> and <em>pt2Member</em> actually contain the address of the functions <em>DoIt</em> and <em>TMyClass::DoMore</em>. A text is shown in case of equality.</p>
<p><!-- 2.4 Code comparing function pointers --></p>
<p><code><span style="color:#000080;"><em>// 2.4 comparing function pointers</em></span> <span style="color:#000080;"><em>// C</em></span> <strong>if</strong>(pt2Function &gt;<span style="color:#ff0080;">0</span>){ <span style="color:#000080;"><em>// check if initialized</em></span> <strong>if</strong>(pt2Function == &amp;DoIt) printf(<span style="color:#0000ff;">"Pointer points to DoIt\n"</span>); } <strong>else</strong> printf(<span style="color:#0000ff;">"Pointer not initialized!!\n"</span>);</code> <code><span style="color:#000080;"><em>// C++</em></span> <strong>if</strong>(pt2ConstMember == &amp;TMyClass::DoMore) cout &lt;&lt; <span style="color:#0000ff;">"Pointer points to TMyClass::DoMore"</span> &lt;&lt; endl;</code> </p>
<div class="RightMargin">
<h3>2.5  Calling a Function using a Function Pointer</h3>
</div>
<p>In C you call a function using a function pointer by explicitly dereferencing it using the <em>*</em> operator. Alternatively you may also just use the function pointer's instead of the funtion's name. In C++ the two operators <em>.*</em> resp. <em>-&gt;*</em> are used together with an instance of a class in order to call one of their (non-static) member functions. If the call takes place within another member function you may use the <strong>this</strong>-pointer.</p>
<p> </p>
<div><span style="color:#000000;"></p>
<div><code><span style="color:#000080;"><em>// 2.5 calling a function using a function pointer</em></span><br />
<strong>int</strong> result1 = pt2Function    (<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>);          <span style="color:#000080;"><em>// C short way</em></span><br />
<strong>int</strong> result2 = (*pt2Function) (<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>);          <span style="color:#000080;"><em>// C</em></span></code></div>
<p> </p>
<p></span></div>
<p> </p>
<p> </p>
<div><span style="color:#000000;"></p>
<div><code>TMyClass instance1;<br />
<strong>int</strong> result3 = (instance1.*pt2Member)(<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>);   <span style="color:#000080;"><em>// C++</em></span><br />
<strong>int</strong> result4 = (*<strong>this</strong>.*pt2Member)(<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>);       <span style="color:#000080;"><em>// C++ if this-pointer can be used</em></span></code></div>
<p></span></div>
<p><span style="color:#000000;"><code>TMyClass* instance2 = <strong>new</strong> TMyClass;<br />
<strong>int</strong> result4 = (instance2-&gt;*pt2Member)(<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>);  <span style="color:#000080;"><em>// C++, instance2 is a pointer</em></span><br />
<strong>delete</strong> instance2;</p>
<p> </p>
<p></code><a name="passPtr"></a></p>
<div class="RightMargin">
<h3>2.6  How to Pass a Function Pointer as an Argument ?</h3>
</div>
<p>You can pass a function pointer as a function's calling argument. You need this for example if you want to pass a pointer to a callback function. The following code shows how to pass a pointer to a function which returns an int and takes a float and two char:</p>
<p><!-- Code 2.6 How to Pass a Function Pointer --></p>
<p><code><span style="color:#000080;"><em>//------------------------------------------------------------------------------------ // 2.6 How to Pass a Function Pointer</em></span> <span style="color:#000080;"><em>// &lt;pt2Func&gt; is a pointer to a function which returns an int and takes a float and two char</em></span> <strong>void</strong> PassPtr(<strong>int</strong> (*pt2Func)(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>)) { <strong>int</strong> result = (*pt2Func)(<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>); <span style="color:#000080;"><em>// call using function pointer</em></span> cout &lt;&lt; result &lt;&lt; endl; } <span style="color:#000080;"><em>// execute example code - 'DoIt' is a suitable function like defined above in 2.1-4</em></span> <strong>void</strong> Pass_A_Function_Pointer() { cout &lt;&lt; endl &lt;&lt; <span style="color:#0000ff;">"Executing 'Pass_A_Function_Pointer'"</span> &lt;&lt; endl; PassPtr(&amp;DoIt); }</code></p>
<div class="RightMargin"><a name="r_value"></a></div>
<h3>2.7  How to Return a Function Pointer ?</h3>
<p> </p>
<p> </p>
<p></span> </p>
<p></span></code></p>
<p>It&#8217;s a little bit tricky but a function pointer can be a function&#8217;s return value. In the following example there are two solutions of how to return a pointer to a function which is taking two <em>float</em> arguments and returns a <em>float</em>. If you want to return a pointer to a member function you have just got to change the definitions/declarations of all function pointers.</p>
<p><!-- Code 2.7 How to Return a Function Pointer --></p>
<p><code><span style="color:#000080;"><em>//------------------------------------------------------------------------------------ // 2.7 How to Return a Function Pointer // 'Plus' and 'Minus' are defined above. They return a float and take two float</em></span> <span style="color:#000080;"><em>// Direct solution: Function takes a char and returns a pointer to a // function which is taking two floats and returns a float. &lt;opCode&gt; // specifies which function to return</em></span> <strong>float</strong> (*GetPtr1(<strong>const char</strong> opCode))(<strong>float</strong>, <strong>float</strong>) { <strong>if</strong>(opCode == <span style="color:#ff8000;">'+'</span>) <strong>return</strong> &amp;Plus; <strong>else return</strong> &amp;Minus; <span style="color:#000080;"><em>// default if invalid operator was passed</em></span> } <span style="color:#000080;"><em>// Solution using a typedef: Define a pointer to a function which is taking // two floats and returns a float</em></span> <strong>typedef float</strong>(*pt2Func)(<strong>float</strong>, <strong>float</strong>); <span style="color:#000080;"><em>// Function takes a char and returns a function pointer which is defined // with the typedef above. &lt;opCode&gt; specifies which function to return</em></span> pt2Func GetPtr2(<strong>const char</strong> opCode) { <strong>if</strong>(opCode == <span style="color:#ff8000;">'+'</span>) <strong>return</strong> &amp;Plus; <strong>else return</strong> &amp;Minus; <span style="color:#000080;"><em>// default if invalid operator was passed</em></span> } <span style="color:#000080;"><em>// Execute example code</em></span> <strong>void</strong> Return_A_Function_Pointer() { cout &lt;&lt; endl &lt;&lt; <span style="color:#0000ff;">"Executing 'Return_A_Function_Pointer'"</span> &lt;&lt; endl; <span style="color:#000080;"><em>// define a function pointer and initialize it to NULL</em></span> <strong>float</strong> (*pt2Function)(<strong>float</strong>, <strong>float</strong>) = NULL; pt2Function=GetPtr1(<span style="color:#ff8000;">'+'</span>); <span style="color:#000080;"><em>// get function pointer from function 'GetPtr1'</em></span> cout &lt;&lt; (*pt2Function)(<span style="color:#ff0080;">2</span>, <span style="color:#ff0080;">4</span>) &lt;&lt; endl; <span style="color:#000080;"><em>// call function using the pointer</em></span> pt2Function=GetPtr2(<span style="color:#ff8000;">'-'</span>); <span style="color:#000080;"><em>// get function pointer from function 'GetPtr2'</em></span> cout &lt;&lt; (*pt2Function)(<span style="color:#ff0080;">2</span>, <span style="color:#ff0080;">4</span>) &lt;&lt; endl; <span style="color:#000080;"><em>// call function using the pointer</em></span> } </code></p>
<p> </p>
<div class="RightMargin">
<h3>2.8  How to Use Arrays of Function Pointers ?</h3>
</div>
<p>Operating with arrays of function pointers is very interesting. This offers the possibility to select a function using an index. The syntax appears difficult, which frequently leads to confusion. Below you find two ways of how to define and use an array of function pointers in C and C++. The first way uses a typedef, the second way directly defines the array. It&#8217;s up to you which way you prefer.</p>
<p><!-- Code 2.8 How to Use Arrays of Function Pointers --></p>
<p><code><span style="color:#000080;"><em>//------------------------------------------------------------------------------------ // 2.8 How to Use Arrays of Function Pointers</em></span> <span style="color:#000080;"><em>// C ---------------------------------------------------------------------------------</em></span> <span style="color:#000080;"><em>// type-definition: 'pt2Function' now can be used as type</em></span> <strong>typedef int</strong> (*pt2Function)(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>); <span style="color:#000080;"><em>// illustrate how to work with an array of function pointers</em></span> <strong>void</strong> Array_Of_Function_Pointers() { printf(<span style="color:#0000ff;">"\nExecuting 'Array_Of_Function_Pointers'\n"</span>); <span style="color:#000080;"><em>// define arrays and ini each element to NULL, &lt;funcArr1&gt; and &lt;funcArr2&gt; are arrays // with 10 pointers to functions which return an int and take a float and two char</em></span> <span style="color:#000080;"><em>// first way using the typedef</em></span> pt2Function funcArr1[<span style="color:#ff0080;">10</span>] = {NULL}; <span style="color:#000080;"><em>// 2nd way directly defining the array</em></span> <strong>int</strong> (*funcArr2[<span style="color:#ff0080;">10</span>])(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>) = {NULL}; <span style="color:#000080;"><em>// assign the function's address - 'DoIt' and 'DoMore' are suitable functions // like defined above in 2.1-4</em></span> funcArr1[<span style="color:#ff0080;">0</span>] = funcArr2[<span style="color:#ff0080;">1</span>] = &amp;DoIt; funcArr1[<span style="color:#ff0080;">1</span>] = funcArr2[<span style="color:#ff0080;">0</span>] = &amp;DoMore; <span style="color:#000080;"><em>/* more assignments */</em></span> <span style="color:#000080;"><em>// calling a function using an index to address the function pointer</em></span> printf(<span style="color:#0000ff;">"%d\n"</span>, funcArr1[<span style="color:#ff0080;">1</span>](<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>)); <span style="color:#000080;"><em>// short form</em></span> printf(<span style="color:#0000ff;">"%d\n"</span>, (*funcArr1[<span style="color:#ff0080;">0</span>])(<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>)); <span style="color:#000080;"><em>// "correct" way of calling</em></span> printf(<span style="color:#0000ff;">"%d\n"</span>, (*funcArr2[<span style="color:#ff0080;">1</span>])(<span style="color:#ff0080;">56</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>)); printf(<span style="color:#0000ff;">"%d\n"</span>, (*funcArr2[<span style="color:#ff0080;">0</span>])(<span style="color:#ff0080;">34</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>)); } <span style="color:#000080;"><em>// C++ -------------------------------------------------------------------------------</em></span> <span style="color:#000080;"><em>// type-definition: 'pt2Member' now can be used as type</em></span> <strong>typedef int</strong> (TMyClass::*pt2Member)(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>); <span style="color:#000080;"><em>// illustrate how to work with an array of member function pointers</em></span> <strong>void</strong> Array_Of_Member_Function_Pointers() { cout &lt;&lt; endl &lt;&lt; <span style="color:#0000ff;">"Executing 'Array_Of_Member_Function_Pointers'"</span> &lt;&lt; endl; <span style="color:#000080;"><em>// define arrays and ini each element to NULL, &lt;funcArr1&gt; and &lt;funcArr2&gt; are // arrays with 10 pointers to member functions which return an int and take // a float and two char</em></span> <span style="color:#000080;"><em>// first way using the typedef</em></span> pt2Member funcArr1[<span style="color:#ff0080;">10</span>] = {NULL}; <span style="color:#000080;"><em>// 2nd way of directly defining the array</em></span> <strong>int</strong> (TMyClass::*funcArr2[<span style="color:#ff0080;">10</span>])(<strong>float</strong>, <strong>char</strong>, <strong>char</strong>) = {NULL}; <span style="color:#000080;"><em>// assign the function's address - 'DoIt' and 'DoMore' are suitable member // functions of class TMyClass like defined above in 2.1-4</em></span> funcArr1[<span style="color:#ff0080;">0</span>] = funcArr2nd use an array of function pointers in C and C++. The first way uses a typedef, the second way directly defines the array. It's up to you which way you prefer.   [<span style="color:#ff0080;">1</span>] = &amp;TMyClass::DoIt; funcArr1[<span style="color:#ff0080;">1</span>] = funcArr2[<span style="color:#ff0080;">0</span>] = &amp;TMyClass::DoMore; <span style="color:#000080;"><em>/* more assignments */</em></span> <span style="color:#000080;"><em>// calling a function using an index to address the member function pointer // note: an instance of TMyClass is needed to call the member functions</em></span> TMyClass instance; cout &lt;&lt; (instance.*funcArr1[<span style="color:#ff0080;">1</span>])(<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>) &lt;&lt; endl; cout &lt;&lt; (instance.*funcArr1[<span style="color:#ff0080;">0</span>])(<span style="color:#ff0080;">12</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>) &lt;&lt; endl; cout &lt;&lt; (instance.*funcArr2[<span style="color:#ff0080;">1</span>])(<span style="color:#ff0080;">34</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>) &lt;&lt; endl; cout &lt;&lt; (instance.*funcArr2[<span style="color:#ff0080;">0</span>])(<span style="color:#ff0080;">89</span>, <span style="color:#ff8000;">'a'</span>, <span style="color:#ff8000;">'b'</span>) &lt;&lt; endl; } </code></p>
<p><strong>Source : <a href="http://www.newty.de/fpt/fpt.html">newty.de</a></strong></p>
<p><!-- Index and top --></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/frieyadie.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/frieyadie.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=42&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2008/06/03/the-syntax-of-c-and-c-function-pointers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>
	</item>
		<item>
		<title>Introduction to Function Pointers</title>
		<link>http://frieyadie.wordpress.com/2008/06/03/introduction-to-function-pointers/</link>
		<comments>http://frieyadie.wordpress.com/2008/06/03/introduction-to-function-pointers/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 05:42:27 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Function Pointer]]></category>
		<category><![CDATA[Switch Statement]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=41</guid>
		<description><![CDATA[Function Pointers provide some extremely interesting, efficient and elegant programming techniques. You can use them to replace switch/if-statements, to realize your own late-binding or to implement callbacks. Unfortunately &#8211; probably due to their complicated syntax &#8211; they are treated quite stepmotherly in most computer books and documentations. If at all, they are addressed quite briefly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=41&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Function Pointers provide some extremely interesting, efficient and elegant programming techniques. You can use them to replace switch/if-statements, to realize your own late-binding or to implement callbacks. Unfortunately &#8211; probably due to their complicated syntax &#8211; they are treated quite stepmotherly in most computer books and documentations. If at all, they are addressed quite briefly and superficially. They are less error prone than normal pointers cause you will never allocate or deallocate memory with them. All you&#8217;ve got to do is to understand what they are and to learn their syntax. But keep in mind: Always ask yourself if you really need a function pointer. It&#8217;s nice to realize one&#8217;s own late-binding but to use the existing structures of C++ may make your code more readable and clear. One aspect in the case of late-binding is runtime: If you call a virtual function, your program has got to determine which one has got to be called. It does this using a V-Table containing all the possible functions. This costs some time each call and maybe you can save some time using function pointers instead of virtual functions. Maybe not &#8230; BTW: Modern compilers are very good! With my Borland Compiler the time I was able to save calling a virtual function which multiplies two floats was about 2 percent.<span id="more-41"></span></p>
<div class="RightMargin"><a name="what"></a></p>
<h3>1.1  What is a Function Pointer?</h3>
</div>
<p>Function Pointers are pointers, i.e. variables, which point to the address of a function. You must keep in mind, that a running program gets a certain space in the main-memory. Both, the executable compiled program code and the used variables, are put inside this memory. Thus a function in the program code is, like e.g. a character field, nothing else than an address. It is only important how you, or better your compiler/processor, interpret the memory a pointer points to.</p>
<div class="RightMargin"><a name="why"></a></p>
<h3>1.2  Introductory Example or How to Replace a <em>Switch</em>-Statement</h3>
</div>
<p>When you want to call a function <em>DoIt()</em> at a certain point called <em>label</em> in your program, you just put the call of the function <em>DoIt()</em> at the point <em>label</em> in your source code. Then you compile your code and every time your program comes up to the point <em>label</em>, your function is called. Everything is ok. But what can you do, if you don&#8217;t know at build-time which function has got to be called? What do you do, when you want to decide it at runtime? Maybe you want to use a so called <a href="http://frieyadie.wordpress.com/callback/callback.html#chapter3">Callback-Function</a> or you want to select one function out of a pool of possible functions. However you can also solve the latter problem using a switch-statement, where you call the functions just like you want it, in the different branches. But there&#8217;s still another way: Use a function pointer!</p>
<p>In the following example we regard the task to perform one of the four basic arithmetic operations. The task is first solved using a switch-statement. Then it is shown, how the same can be done using a function pointer. It&#8217;s <strong>only an example</strong> and the task is so easy that I suppose nobody will ever use a function pointer for it <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><em><span style="color:#000080;">//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
// 1.2 Introductory Example or How to Replace a Switch-Statement<br />
// Task: Perform one of the four basic arithmetic operations specified by the<br />
//       characters &#8216;+&#8217;, &#8216;-&#8217;, &#8216;*&#8217; or &#8216;/&#8217;.</span></em></p>
<p><span style="color:#000080;"><em>// The four arithmetic operations &#8230; one of these functions is selected<br />
// at runtime with a swicth or a function pointer</em></span><br />
<strong>float</strong> Plus    (<strong>float</strong> a, <strong>float</strong> b) { <strong>return</strong> a+b; }<br />
<strong>float</strong> Minus   (<strong>float</strong> a, <strong>float</strong> b) { <strong>return</strong> a-b; }<br />
<strong>float</strong> Multiply(<strong>float</strong> a, <strong>float</strong> b) { <strong>return</strong> a*b; }<br />
<strong>float</strong> Divide  (<strong>float</strong> a, <strong>float</strong> b) { <strong>return</strong> a/b; }</p>
<p><span style="color:#000080;"><em>// Solution with a switch-statement &#8211; &lt;opCode&gt; specifies which operation to execute</em></span><br />
<strong>void</strong> Switch(<strong>float</strong> a, <strong>float</strong> b, <strong>char</strong> opCode)<br />
{<br />
   <strong>float</strong> result;</p>
<p>   <span style="color:#000080;"><em>// execute operation</em></span><br />
   <strong>switch</strong>(opCode)<br />
   {<br />
      <strong>case</strong> <span style="color:#ff8000;">&#8216;+&#8217;</span> : result = Plus     (a, b); <strong>break</strong>;<br />
      <strong>case</strong> <span style="color:#ff8000;">&#8216;-&#8217;</span> : result = Minus    (a, b); <strong>break</strong>;<br />
      <strong>case</strong> <span style="color:#ff8000;">&#8216;*&#8217;</span> : result = Multiply (a, b); <strong>break</strong>;<br />
      <strong>case</strong> <span style="color:#ff8000;">&#8216;/&#8217;</span> : result = Divide   (a, b); <strong>break</strong>;<br />
   }</p>
<p>   cout &lt;&lt; <span style="color:#0000ff;">&#8220;Switch: 2+5=&#8221;</span> &lt;&lt; result &lt;&lt; endl;         <span style="color:#000080;"><em>// display result</em></span><br />
}</p>
<p><span style="color:#000080;"><em>// Solution with a function pointer &#8211; &lt;pt2Func&gt; is a function pointer and points to<br />
// a function which takes two floats and returns a float. The function pointer<br />
// &#8220;specifies&#8221; which operation shall be executed.</em></span><br />
<strong>void</strong> Switch_With_Function_Pointer(<strong>float</strong> a, <strong>float</strong> b, <strong>float</strong> (*pt2Func)(<strong>float</strong>, <strong>float</strong>))<br />
{<br />
   <strong>float</strong> result = pt2Func(a, b);    <span style="color:#000080;"><em>// call using function pointer</em></span></p>
<p>   cout &lt;&lt; <span style="color:#0000ff;">&#8220;Switch replaced by function pointer: 2-5=&#8221;</span>;  <span style="color:#000080;"><em>// display result</em></span><br />
   cout &lt;&lt; result &lt;&lt; endl;<br />
}</p>
<p><span style="color:#000080;"><em>// Execute example code</em></span><br />
<strong>void</strong> Replace_A_Switch()<br />
{<br />
   cout &lt;&lt; endl &lt;&lt; <span style="color:#0000ff;">&#8220;Executing function &#8216;Replace_A_Switch&#8217;&#8221;</span> &lt;&lt; endl;</p>
<p>   Switch(<span style="color:#ff0080;">2</span>, <span style="color:#ff0080;">5</span>, <span style="color:#000080;"><em>/* &#8216;+&#8217; specifies function &#8216;Plus&#8217; to be executed */</em></span> <span style="color:#ff8000;">&#8216;+&#8217;</span>);<br />
   Switch_With_Function_Pointer(<span style="color:#ff0080;">2</span>, <span style="color:#ff0080;">5</span>, <span style="color:#000080;"><em>/* pointer to function &#8216;Minus&#8217; */</em></span> &amp;Minus);<br />
}</p>
<p><strong>Important note:</strong> A function pointer always points to a function with a specific signature! Thus all functions, you want to use with the same function pointer, must have the <strong>same parameters and return-type!</strong></p>
<p><strong>Source : <a href="http://www.newty.de/fpt/intro.html">newty.de</a></strong></p>
<p><!-- Index and top --><!-- Code 1.2 Introductory Example or How to Replace a Switch-Statement --><!-- 1.2 Introductory Example --></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/frieyadie.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/frieyadie.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=41&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2008/06/03/introduction-to-function-pointers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>
	</item>
		<item>
		<title>Kejahatan Cyber di Second Life</title>
		<link>http://frieyadie.wordpress.com/2008/05/24/kejahatan-cyber-di-second-life/</link>
		<comments>http://frieyadie.wordpress.com/2008/05/24/kejahatan-cyber-di-second-life/#comments</comments>
		<pubDate>Sat, 24 May 2008 08:01:43 +0000</pubDate>
		<dc:creator>frieyadie</dc:creator>
				<category><![CDATA[Cyber Crime]]></category>
		<category><![CDATA[dunia virtual]]></category>
		<category><![CDATA[Kejahatan Cyber]]></category>
		<category><![CDATA[Kejahatan Cyber di Second Life]]></category>
		<category><![CDATA[Pencucian Uang]]></category>
		<category><![CDATA[Pencurian Identitas]]></category>

		<guid isPermaLink="false">http://frieyadie.wordpress.com/?p=39</guid>
		<description><![CDATA[Contributed by Boris Mutina (minor)
Thursday, 28 June 2007
Sumber Asli : id.zone-h.com
Orang sering melihat kehidupan sehari-hari sebagai tantangan: meninggalkan tempat tidur dan pergi ke kantor merupakan sesuatu yang tak bisa ditinggalkan, sedemikian sehingga seseorang dapat memilih untuk tidak keluar rumah sama sekali dan menemui teman, berbelanja, mencari uang di dalam Second Life.
Bagi mereka yang belum terbiasa [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=39&subd=frieyadie&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Contributed by Boris Mutina (minor)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Thursday, 28 June 2007</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Sumber Asli : <a href="http://id.zone-h.org/index2.php?option=com_content&amp;do_pdf=1&amp;id=91">id.zone-h.com</a></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Orang sering melihat kehidupan sehari-hari sebagai tantangan: meninggalkan tempat tidur dan pergi ke kantor merupakan sesuatu yang tak bisa ditinggalkan, sedemikian sehingga seseorang dapat memilih untuk tidak keluar rumah sama sekali dan menemui teman, berbelanja, mencari uang di dalam Second Life.<span id="more-39"></span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Bagi mereka yang belum terbiasa dengan Second Life: Second Life adalah dunia virtual 3D. Anda bisa bergabung dengannya, menciptakan pribadi baru dan aspek fisik baru, cara berjalan, terbang, bersenang-senang dengan teman. Anda bisa membeli lahan, dan Anda bisa juga membuat uang virtual yang bisa dikonversi ke uang sesungguhnya. </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Secara online.</span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Seperti pembuat Second life di LindenLab menyatakan pada homepagenya: &#8220;Sangat banyak peluang untuk inovasi dan mengambil keuntungan di Second Life selayaknya di Dunia Nyata. Membuka klub malam, menjual perhiasan, menjadi spekulan tanah&#8221;. Pentingnya SL segera dimanfaatkan oleh banyak orang. Sebagai contoh: Swedia membuka sebuah kedutaan Virtual dan Microsoft mempromosikan Visual Studio di dalam SL.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Berbicara tentang peluang bisnis, secara umum, perusahaan besar pada dasarnya mempromosikan produk mereka di</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">dalam SL, sedangkan individu dan perusahaan kecil mencoba untuk berdagang dalam dunia virtual untuk</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">mengumpulkan uang. Sayangnya, setiap kesempatan untuk mendapatkan uang, selalu saja ada penjahat yang mencari keuntungan dengan segala macam cara.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Bisa terjadi semisal jika anda bekerja sebagai seorang designer dan menjual karya anda di dalam SL, anda bisa melihat semua hasil pekerjaan anda dicuri dan dijual oleh orang lain di beberapa sudut Second Life.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Dalam kasus serupa Anda bisa menghalangi kejahatan ini dengan meminta SL untuk menendang pencuri seperti itu dari masyarakat virtual, dan kemudian menggugat dia karena melanggar hukum hak cipta. Kesulitan utama dalam kasus serupa, adalah untuk menemukan kejahatan dan pelakunya karena SL terdiri dari 8 juta pengguna dan akan terus berkembang. Ini berarti bahwa Anda tidak pernah akan bisa menyadari apabila orang lain mengeksploitasi karya anda. </span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Resiko seperti itu bukan satu-satunya yang ditimbulkan oleh SL. Bayangkan skenario ini: agen real estate menawarkan berbagai lahan yang bisa jadi sangat mahal untuk kebanyakan pengguna. Ada seorang pemakai yang bisa membeli lahan itu dan akan membuat pembayaran dengan transfer uang virtual yang kemudian diubah menjadi uang sebenarnya. Tetapi semenjak pemindahan uang dalam jumlah besar bisa beresiko, transaksinya akan dibagi-bagi ke dalam beberapa transfer-uang dalam jumlah kecil. Uang yang sangat banyak dipindahkan dari seorang pemakai ke pemakai lain, dalam angka kecil, sebuah medium yang baik untuk pencucian uang atau pembiayaan kegiatan teroris.</span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Pencurian identitas merupakan masalah lain, yang telah ditemukan dalam second Life. Hal tersebut dilaporkan oleh blogger yang menceritakan apa yang terjadi pada pemain Second Life yang ditipu dalam transaksi real estate oleh seseorang yang mencuri identitas pemain lain untuk bertransaksi <span> </span>menggunakan Pay-Pal. Anonimitas yang ditawarkan oleh SL, bisa menjadi suatu persembunyian untuk kejahatan lain yang bermotif bukan mencari uang. Bagaimana Anda akan menghindari tindak kekerasan seksual anak dalam SL? Hal tersebut masih belum terpecahkan seperti sedang terjadi di Internet sekarang, di mana hanya kelompok &#8220;orang-orang yang tertarik&#8221; yang mempunyai akses ke tempat tersembunyi, yang dilindungi oleh password, di mana materi pedo-pornografi dipertontonkan.</span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">TV Jerman menayangkan sebuah Reportase yang menunjukkan suatu kelompok pedophilia membayar untuk bisa berhubungan sex virtual dengan bocah virtual. Menurut hukum, pornografi anak dihukum dengan penjara dan juga di Linden Lab, pembuat SL, menyatakan bahwa mereka tidak akan mentoleransi kasus pornografi anak, menawarkan kerja sama penuh untuk mendeteksi pelaku kejahatan serupa.</span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Untuk memecahkan masalah &#8220;bagaimana cara untuk mendeteksi pemerkosaan virtual&#8221; sebuah Pengadilan Belgia di Brussels, terlibat dalam percobaan pengadilan terhadap seorang laki-laki tertuduh paedophilia virtual, telah memulai kerjasama dengan Federal Computer Crime Unit.</span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Banyak sekali penyalahgunaan yang menyoroti berbagai kemungkinan dengan adanya SL untuk hidup dalam keberadaan virtual, tidak hanya untuk pemakai umum tetapi juga untuk penjahat cyber. Suatu tim spesifik penyalahgunaan telah disediakan untuk menendang para pemakai iseng tetapi masih belum cukup. Seperti kasus yang dilaporkan oleh TV Jerman, satu-satunya jalan untuk menemukan dan menghapus kejahatan macam ini adalah dengan mengharapkan bantuan dari para pemakai lain.</span></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;font-family:Calibri;">Tetapi sekali penjahat ditangkap? Peraturan spesifik yang menjelasan apa yang dibolehkan dan apa yang tidak di dalam dunia virtual, betul-betul diperlukan.</span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/frieyadie.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/frieyadie.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frieyadie.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frieyadie.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frieyadie.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frieyadie.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frieyadie.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frieyadie.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frieyadie.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frieyadie.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frieyadie.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frieyadie.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frieyadie.wordpress.com&blog=435321&post=39&subd=frieyadie&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://frieyadie.wordpress.com/2008/05/24/kejahatan-cyber-di-second-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">frieyadie</media:title>
		</media:content>
	</item>
	</channel>
</rss>