Seri Pemrograman: Tipe Data dan Variabel

Pada umumnya di dalam sebuah program akan terjadi pengolahan data (input) menjadi informasi (output). Program menerima masukan dari pengguna kemudian diolah untuk selanjutnya ditampilkan kembali kepada pengguna. Misalnya program menghitung luas persegi. Pengguna diminta memasukkan data panjang dan lebar. Dan setelah di-OK atau di-Enter muncullah luas yang merupakan hasil perkalian antara panjang dengan lebar.

Sebagai bagian dari sebuah sistem komputer, program memanfaatkan memori komputer untuk digunakan sebagai tempat penyimpanan baik data maupun informasi. Data yang dimasukkan oleh pengguna melalui keyboard akan dibaca oleh program dan kemudian disimpan di memori (RAM). Pun halnya informasi hasil pengolahan juga bisa disimpan terlebih dulu di memori untuk selanjutnya baru ditampilkan ke layar monitor komputer.

Untuk mengatur penggunaan memori (sebagai penyimpanan data) oleh program digunakanlah konsep tipe data dan variabel. Memori komputer ibarat sebuah rak lemari yang sedemikian tinggi dengan sejumlah slot kecil penyusunnya yang tertata rapi, berurutan dari bawah ke atas. Ada slot yang lebarnya besar, ada pula yang kecil. Konsekuensinya, besar kecil ukuran menentukan besar kecil isi yang bisa dimasukkan ke dalam slot tersebut. Masing-masing slot diberi label yang berbeda antara satu dengan yang lainnya. Tujuannya untuk memudahkan pengaksesan dan tidak terjadi pengisian oleh data lain.

Paragraf di atas merupakan gambaran tentang manajemen memori sederhana. Jika rak adalah memori maka slot adalah segmen memori. Besar kecilnya ukuran slot menandakan jenis tipe data. Misal ada tipe data integer dengan ukuran 2 byte, tipe data float 4 byte dan tipe data char memiliki besar 1 byte. Sedangkan label pada slot adalah analogi nama variabel dalam pemrograman. Sehingga biasanya dalam sebuah program diawali dengan penulisan nama-nama variabel yang akan dipakai beserta jenis tipe datanya. Ini biasanya dikenal dengan istilah deklarasi variabel, yang akan diterjemahkan oleh compiler sebagai langkah untuk menyiapkan/ booking memori sebelum digunakan/ diproses lebih lanjut oleh program.

Semoga bermanfaat :)

Apa Itu Pemrograman (Komputer)

Sebagai seorang programmer, manusia harus mengetahui bahasa yang dipakai oleh komputer. Bahasa yang dikenali oleh komputer adalah bahasa mesin. Bahasa mesin pada dasarnya sangat susah dipahami dan diingat oleh manusia karena berupa urutan data binary. Misal : 1011001010111 untuk sebuah perintah mencetak karakter di layar. Padahal ada ratusan bahkan ribuan perintah yang dimiliki oleh komputer. Untuk menjembatani bahasa mesin dengan bahasa manusia digunakanlah bahasa pemrograman. Bahasa pemrograman berkembang dari low level sampai high level, dari bahasa yang dekat ke bahasa mesin hingga bahasa yang hampir mirip dengan bahasa sehari-hari manusia.

Terus, apakah pemrograman itu sendiri?
Menurut Daniel K. Schneider:
Programming is instructing a computer to do something for you with the help of a programming language. Deal with two kind of things data and procedures.
Sedangkan menurut Wikipedia.org:
Computer programming (often shortened to programming or coding) is the process of designing, writing, testing, debugging / troubleshooting, and maintaining the source code of computer programs.
Menurut Alan Gauld:
Computer Programming is the art of making a computer do what you want it to do.
Menurut McCracken:
Programming is basically a process of translating from the language convenient to human beings to the language convenient to the computer.
Dan menurut Land of Code.com:
Computer programming is defined as telling a computer what to do through a special set of instructions which are then interpreted by the computer to perform some task(s). These instructions can be specified in one or more programming languages including Java, C, and C++. A computer goes through a set of steps whose purpose is to achieve something. These steps are instructed to the computer by computer programs. Essentialy, computer programming is the process by which these programs are designed and implemented.

Demikianlah rangkuman tentang definisi pemrograman. Semoga bermanfaat bagi pembaca yang budiman :)

Mengenal NetBeans IDE 6.9.1

Kebetulan semester ini mencoba Netbeans terbaru untuk demontrasi perkuliahan bahasa pemrograman di kelas. Release terbaru saat ini dari Netbeans.org. Di halaman Download web ini sudah berhasil saya unduh installer-nya yang paling minim, hanya sekitar 50 Mb. Sebagaimana prediksi di awal, laptop saya sepertinya bakalan gelagepan buat menjalankan Netbeans, apalagi yang terbaru. Dan ternyata memang benar. Setidaknya dilihat dari ukuran RAM-nya sudah kelihatan :(

Sebagaimana release di halaman resminya, NetBeans IDE 6.9.1 membutuhkan spesifikasi perangkat keras yang cukup handal. Ada spesifikasi minimal, dan spesifikasi yang direkomendasikan. Detailnya adalah sebagai berikut:

Spesifikasi minimal:
*Microsoft Windows XP Professional SP3/Vista SP1/Windows 7 Professional:
o Processor: 800MHz Intel Pentium III or equivalent
o Memory: 512 MB
o Disk space: 750 MB of free disk space
* Ubuntu 9.10:
o Processor: 800MHz Intel Pentium III or equivalent
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Solaris OS version 10 (SPARC):
o Processor: UltraSPARC II 450 MHz
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Solaris OS version 10 (x86/x64 Platform Edition):
o Processor: AMD Opteron 1200 Series 1.8 GHz
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Macintosh OS X 10.5 Intel:
o Processor: Dual-Core Intel (32 or 64-bit)
o Memory: 512 MB
o Disk space: 650 MB of free disk space

Spesifikasi rekomendasi:
* Microsoft Windows XP Professional SP3/Vista SP1/Windows 7 Professional:
o Processor: 2.6 GHz Intel Pentium IV or equivalent
o Memory: 2 GB
o Disk space: 1 GB of free disk space
* Ubuntu 9.10:
o Processor: 2.6 GHz Intel Pentium IV or equivalent
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* Solaris OS version 10 (SPARC):
o Processor: UltraSPARC IIIi 1 GHz
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* Solaris OS version 10 (x86/x64 platform edition):
o Processor: AMD Opteron 1200 Series 2.8 GHz
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* OpenSolaris 2010.03 (x86/x64 platform edition):
o Processor: AMD Opteron 1200 Series 2.8 GHz
o Memory: 2 GB
o Disk space: 650 MB of free disk space
* Macintosh OS X 10.6 Intel:
o Processor: Dual-Core Intel (32 or 64-bit)
o Memory: 2 GB
o Disk space: 850 MB of free disk space

Siswa SD Pernah Akses Por(n)ografi

Memprihatinkan. Anak yang masih bau kencur sudah "ngeluyur" kemana-mana. Waspada, waspada! Tantangan untuk para developer aplikasi pengaman akses internet. Tantangan pula bagi para orang tua serta masyarakat. Dan tak lupa, tantangan bagi lembaga terkait: sekolah, penyedia media dan pemerintah tentunya. Tantangan ini harus dijawab dengan terpadu.

[ Senin, 14 Juni 2010 ]
Siswa SD Pernah Akses Pornografi
Berita Video Artis Picu Rasa Ingin Tahu

JAKARTA - Para orang tua sepatutnya berhati-hati dan mengawasi anak-anak mereka. Perkembangan teknologi informasi (TI) membawa dampak buruk untuk anak-anak di Indonesia, khususnya para siswa sekolah dasar (SD). Berdasar data Yayasan Kita dan Buah Hati, mayoritas atau 67 persen dari 2.818 siswa SD kelas IV-VI yang menjadi sampel penelitian menyatakan pernah mengakses informasi pornografi.

"Medianya beragam. Tapi, hasilnya sama. Yakni, penurunan moral generasi penerus," ujar Elli Risman, direktur Yayasan Kita dan Buah Hati, ketika memberikan keterangan pers di Kantor Komnas Perlindungan Anak, Jakarta, Sabtu lalu (12/6).

Elli mengatakan, sebagian besar anak di bawah umur mengakses materi berunsur pornografi melalui beragam media. Tetapi, yang paling utama berasal dari komik. Data yang cukup mengejutkan itu terungkap dari survei lembaga swadaya masyarakat (LSM) atas sejumlah SD di Indonesia yang dilakukan sejak Januari 2008 hingga Februari 2010.

"Sekarang pemerintah harus memerangi kejahatan yang merusak anak. Harus ada program terapi nasional yang selama ini belum ada di Indonesia untuk anak-anak," paparnya.

Hasil survei itu menunjukkan, anak-anak di bawah umur yang mengakses pornografi melalui komik mencapai 24 persen, situs internet 22 persen, game 17 persen, film/TV 12 persen, telepon genggam 6 persen, majalah 6 persen, dan koran 5 persen. Para pelajar SD tersebut, umumnya, melihat pornografi karena iseng (21 persen), penasaran (18 persen), ikut teman (9 persen), dan takut dianggap kurang pergaulan (3 persen).

Elli menjelaskan, dalam pemahaman anak-anak berdasar hasil survei, pornografi diterjemahkan sebagai gambar orang telanjang (31 persen), jorok (29 persen), serta menampilkan aurat dan bagian yang tidak boleh dilihat (12 persen). "Jadi, banyak versi dalam benak anak yang harus dipahami orang tua bila ingin mencegah," ungkap dia.

Ketua Komnas Perlindungan Anak Arist Merdeka Sirait mengatakan, ada tren jumlah anak pengakses informasi pornografi bertambah. Apalagi, papar dia, sarana untuk akses media yang menyajikan informasi pornografi kian sulit dibendung. Bahkan, tren pemberitaan yang beredar tentang rekaman video porno artis ibu kota baru-baru ini ikut meningkatkan rasa ingin tahu anak.

"Kami memang belum menyelesaikan survei soal itu. Namun, diyakini jumlahnya bertambah. Ketika berita tersebut muncul dan semua anak menjelajahi internet, jumlahnya akan bertambah dan mereka sekarang menganggap itu sebagai hal biasa," ujarnya prihatin. (zul/c11/dwi)

sumber: Jawa Pos

Contoh Program Double Linked List dalam Bahasa Java

Berikut ini contoh program sederhana dalam bahasa Java (console) untuk implementasi konsep struktur data Double Linked List. Double Linked List adalah modifikasi Single Linked List sehingga mempunyai dua buah variabel/ atribut untuk mereferensi lokasi data sebelum dan sesudahnya. Biasanya dinamai Next dan Previous. Untuk contoh ini menggunakan konsep InsertBack, dimana penambahan node (simpul) baru selalu berada di belakang. Sedangkan penghapusannya memakai metode DeleteFirst, dimana simpul yang dihapus selalu yang berada di posisi terdepan. Selamat mencoba :)

class Node //atau node/simpul
{
public int data; // data item
public Node next; // next node link in list
public Node prev; // previous node link in list
public Node(int id) // constructor
{
data = id; // initialize data
} // set to null)

public void displayLink() // display ourself
{
System.out.print("{" + data + "} ");
}
} // end class Link
class LinkList
{
private Node head; // ref to first link on list
private Node tail; // ref to last link on list
public LinkList() // constructor
{
head = tail = null; // no items on list yet
}
public boolean isEmpty() // true if list is empty
{
return (head==null);
}
public void insertBack(int id) //node baru selalu di belakang
{ // make new link
Node newNode = new Node(id);
if (tail == null) // the first node created
{
head = tail = newNode; // first --> newLink
}
else // the second node and the next node
{
tail.next = newNode; //next dr tail (awal) diarahkan ke node baru
newNode.prev = tail; //prev dr node baru diarahkan ke tail (awal)
tail = newNode; //tail (baru) diarahkan ke node baru
}
}
public Node deleteFirst() // delete first item
{ // (assumes list not empty)
Node temp = head; // save reference to link
head.prev = null;
head = head.next; // delete it: first-->old next
return temp; // return deleted link
}
public void displayForward()
{
Node current = head; // start at beginning of list
while(current != null) // until end of list,
{
current.displayLink(); // print data
current = current.next; // move to next link
}
System.out.println("");
}
public void displayBackward()
{
Node current = tail; // start at beginning of list
while(current != null) // until end of list,
{
current.displayLink(); // print data
current = current.prev; // move to next link
}
System.out.println("");
}
} // end class LinkList
class LinkListApp
{
public static void main(String[] args)
{
LinkList theList = new LinkList(); // make new list
System.out.println("Initializing Double Linked List...");
theList.insertBack(22); // insert four items
theList.insertBack(44);
theList.insertBack(66);
theList.insertBack(88);
System.out.println("Display Forward :");
theList.displayForward(); // display list
System.out.println("Display Backward :");
theList.displayBackward();
System.out.println("Delete List from Head...");
while( !theList.isEmpty() ) // until it's empty,
{
Node aLink = theList.deleteFirst(); // delete link
System.out.print("Deleted "); // display it
aLink.displayLink();
System.out.println("");
}
theList.displayForward(); // display list
} // end main()
} // end class LinkListApp