Sabtu, 05 Desember 2015

Permainan Tic Tac Toe Dalam Bahasa Pemrograman Java

Kali ini, penulis akan membagikan cara membuat game tic tac toe dalam bahasa pemrograman java.

Berikut ini adalah source code Java-nya
import java.util.Scanner;

public class SOS {
// Name-constants to represent the seeds and cell contents
   public static final int EMPTY = 0;
   public static final int CROSS = 1;
   public static final int NOUGHT = 2;

Jumat, 27 November 2015

Binary Sarch Tree dalam Bahasa Pemrograman Java

Dalam dunia pemrograman terdapat banyak metoda pencarian seperti double link list search dan array search. Namun kali ini penulis akan membahas tentang salah satu metode pencarian yang disebut binary search tree.

Binary Tree adalah struktur data yang mirip dengan Linked List. Bila Linked List dianalogikan sebagai rantai yang linier maka Binary Tree dianalogikan sebagai pohon yang mempunyai root, left child (dimana left child selalu lebih kecil daripada root), dan right child (dimana right child selalu lebih besar daripada root).



Binary Search Tree (BST) merupakan tree yang terurut (ordered Binary Tree) yang memiliki kelebihan bila dibanding dengan struktur data lain. Diantaranya adalah proses pengurutan (sorting) dan pencarian (searching) dapat dilakukan bila data sudah tersusun dalam struktur data BST. Pengurutan dapat dilakukan bila BST ditelusuri (traversed) menggunakan metode in-order.

Berikut adalah source code Binary Search Tree
import java.util.Scanner;

 /* Class BSTNode */
 class BSTNode
 {
     BSTNode left, right;
     int data;

Kamis, 12 November 2015

Ordered Double Link List dalam Java

Seperti yang sudah saya bahas pada postingan sebelumnya http://shemwidodo.blogspot.co.id/2015/09/linked-list-dengan-menggunakan-bahasa.html.
Double Link List adalah link list yang mempunyai dua link umumnya disebut next dan prev.
Kali ini saya mencoba membuat program sederhana untuk mengurutkan inputan user pada saat ditampilkan menggunakan double link list dengan bahasa pemrograman Java.

Berikut ini adalah source code ordered double link list
class node{
    int data;
    node next,prev;
}

Jumat, 18 September 2015

QUEUE

Pengertian queue
Berbeda dengan stack, queue atau antrian merupakan sebuah koleksi objek yang menggunakan prinsip FIFO (First In First Out), yaitu data yang pertama kali dimasukkan akan menjadi pertama kali yang keluar dari antrian tersebut.

Ciri antrian :
·         HEAD merupakan sebutan untuk elemen yang paling awal dalam antrian
·         TAIL merupakan sebutan untuk elemen yang paling akhir dalam antrian
·         Elemen HEAD & TAIL diketahui
·         FIFO

Operasi antrian :
·         Create() Untuk menciptakan dan menginisialisasi Queue Dengan cara membuat Head dan Tail = -1 
·         IsEmpty() Untuk memeriksa apakah Antrian sudah penuh atau belum Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail. 
·         IsFull Untuk mengecek apakah Antrian sudah penuh atau belum Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh 
·         Enqueue Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu 
·         Dequeue() Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1 Penggeseran dilakukan dengan menggunakan looping.
·         Clear() Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1 Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca 
·         Tampil() Untuk menampilkan nilai-nilai elemen Antrian Menggunakan looping dari head s/d tail

Contoh Antrian :
·         Mengantri di bank / loket pembayaran

·         Penjualan barang di toko


Berikut adalah script / source code queue pada bahasa pemrograman C#
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Selasa, 15 September 2015

STACK

Pengertian stack
Dalam ilmu komputerstack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut. Tumpukan dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix).
Ciri tumpukan:
·         TOP merupakan sebutan untuk elemen paling atas dari suatu stack
·         Elemen TOP merupakan elemen yang paling akhir ditambahkan
·         Elemen TOP diketahui
·         penambahan dan penghapusan elemen selalu dilakukan di TOP
·         LIFO
Pemanfaatan tumpukan:
·         Perhitungan ekspresi aritmatika (posfix)
·         algoritma backtraking (runut balik)
·         algoritma rekursif
Operasi tumpukan :
1.     InsertFirst () biasa disebut Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke tumpukan
2.     DeleteFirst () biasa disebut Pop (output E : typeelmt, input/output data : stack ) : menghapus sebuah elemen tumpukan
3.     IsEmpty () : mengecek apakah stack kosong atau ada elemennya
4.     IsFull () : mengecek apakah stack telah penuh atau belum
5.     Clear () : menghapus semua data
6.     Peek () : melihat data TOP

Contoh Stack :
·         Penumpukan peti kemas
·         Penumpukan buku, piring, dll

Berikut adalah script / source code stack pada bahasa pemrograman C#
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

ARRAY PADA BAHASA PEMROGRAMAN C#

PENGERTIAN
Larik (Bahasa Inggris : array), dalam ilmu computer, adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan serta bertipe data sama pula.
Larik dapat diakses berdasarkan indeksnya. Indeks larik pada umumnya dimulai dari angka 0 dan ada pula yang dimulai dari bukan angka 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan (looping).

MACAM-MACAM LARIK (ARRAY)

  •  Larik 1 dimensi


Larik 1 dimensi adalah kumpulan elemen yang tersusun dalam 1 baris

  • Larik 2 dimensi

Larik 2 dimensi adalah pengembangan dari larik 1 dimensi dimana larik 1 dimensi hanya mempunyai baris, sedangkan larik 2 dimensi mempunyai baris dan kolom. Atau bisa disebut bahwa larik 2 dimensi adalah larik 1 dimensi yang berisi larik 1 dimensi.

Berikut adalah source code program pemesanan kursi di bioskop dengan menggunakan array
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Rabu, 09 September 2015

Linked List dengan Menggunakan Bahasa Pemrograman C#

PENGERTIAN
Senarai berantai (bahasa Inggrislinked list) atau kadang-kadang disebut dengan senarai bertaut atau daftar bertaut dalam ilmu komputer merupakan sebuah struktur data yang digunakan untuk menyimpan sejumlah objek data biasanya secara terurut sehingga memungkinkan penambahan, pengurangan, dan pencarian atas elemen data yang tersimpan dalam senarai dilakukan secara lebih efektif. Pada praktiknya sebuah struktur data memiliki elemen yang digunakan untuk saling menyimpan rujukan antara satu dengan lainnya sehingga membentuk sebuah senarai abstrak, tiap-tiap elemen yang terdapat pada senarai abstrak ini seringkali disebut sebagai node. karena mekanisme rujukan yang saling terkait inilah disebut sebagai senarai berantai.

Sebuah senarai berantai dengan tiap-tiap node yang terdiri atas dua elemen,
 data integer, dan elemen rujukan ke node berikutnya

Senarai berantai merupakan bentuk struktur data paling umum dan sederhana yang banyak digunakan untuk mengimplementasikan model struktur data lainnya, termasuk antrian, stack, ataupun larik assosiatif.


 KEUNTUNGAN DAN KERUGIAN
Keuntungan utama pemanfaatan senarai berantai dibandingkan larik, ataupun senarai biasa adalah kemudahan dan efektifitas kerja yang lebih baik dalam hal menambah, mengurangi, serta mencari suatu elemen/node yang terdapat dalam senarai. Hal tersebut dimungkinkan karena elemen-elemen yang terdapat pada sebuah senarai berantai tidak ditempatkan pada sebuah blok memori komputer seperti halnya larik ataupun senarai biasa, melainkan tiap-tiap elemen/node tersebut tersimpan dalam blok memori terpisah, penambahan, pengurangan, ataupun penggantian node dapat dilakukan dengan mengubah elemen rujukan atas tiap-tiap node yang terkait. Kerugiannya, sebuah senarai berantai tidak memungkinkan pengaksesan elemen secara acak, dalam artian untuk dapat mengakses node ke tiga pada contoh di atas harus dilakukan dengan cara mengunjungi elemen-elemen sebelumnya, dimulai dari elemen pertama, ke dua, seterusnya hingga pada lokasi elemen yang dimaksudkan.



JENIS-JENIS LINKED LIST
·       Senarai tunggal / Singly Linked List
Bila struktur data sebuah node hanya memiliki satu tautan atas node berikutnya dalam sebuah senarai, maka senarai tersebut dinamakan sebagai senarai tunggal.

Senarai tunggal dengan tiap-tiap node yang terdiri atas dua elemen, data integer, dan elemen rujukan ke node berikutnya

Berikut adalah coding untuk membuat Singly Linked List
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Kamis, 03 September 2015

Membuat Kalkulator Bilangan Pecahan Menggunakan Bahasa Pemrograman C#


Kali ini, penulis akan membagikan cara membuat kalkulator yang menghitung bilangan pecahan menggunakan bahasa pemrograman C#.
Pada saat ini, kalkulator sangat diperlukan di hampir seluruh aspek kehidupan manusia. Kalkulator menjadi sangat diperlukan karena semua pekerjaan hitung-menghitung menjadi mudah seperti profesi akuntan pasti akan membutuhkan kalkulator untuk dapat menghitung dengan cepat dan akurat, begitu juga dengan profesi yang lainnya.
Kalkulator pada saat dapat dikatakan cukup canggih karena dapat melakukan perhitungan yang rumit secara cepat dan akurat. Oleh sebab itu penulis inign membantu para pemakai kalkulator dengan piranti yang lebih canggih menggunakan bahasa pemrograman C#.
C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan. Menurut standar, nama C# terdiri atas sebuah huruf Latin C yang diikuti oleh tanda pagar yang menandakan angka #. Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik, dan tanda pagar # tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di dalam keyboard standar.
Tujuan dari pembuatan program ini adalah agar mempermudah para pemakai kalkulator dalam penggunaan operator / tanda operasional yang sudah dikenal seperti “x”,”:”,”+”,”-“.
Kelebihan C# :

  • Flexible: C# program dapat di eksekusi di mesin computer sendiri atau di transmiskan melalu web dan di eksekusi di computer lainnya
  • Powerful: C# memiliki sekumpulan perintah yang sama dengan C++ yang kaya akan fitur yang lengkap tetapi dengan gaya bahasa yang lebih diperhalus sehingga memudahkan penggunanya
  • Easier to use: C# memodifikasi perintah yang sepenuhnya sama dengan C++ dan memberitahu dimana letak kesalahan kita bila ada kesalahan dalam aplikasi , hal ini dapat mengurangi waktu kita dalam mencari error
  • Visually oriented: The .NET library code yang digunakan oleh C# menyediakan bantuan yang dibutuhkan untuk membuat tampilan yang complicated dengan frames, dropdown , tabbed windows, group button , scroll bar , background image , dan lainnya
  • Secure: semua bahasa pemprograman yg digunakan untuk kebutuhan internet mesti memiliki security yg benar-benar aman untuk menghindari aksi kejahatan dari pihak lain seperti hacker , C# memiliki segudang fitur untuk menanganinya
  •  Memory management lebih mudah karena adanya garbage collector, yg membebaskan memory scr otomatis shg dapat mencegah memory leak. Type safe, konversi implisit dari tipe data hanya mensupport turunan dan operasi dari tipe data yg melebar (misal dari int ke long, kalo int ke short tidak bisa) dan ini dideteksi pas compile.
  •  Banyak fungsi yang tersedia di Base Class Library .NET Framework
  • Untuk pengembangan aplikasi bisnis/umum atau enterprise, penggunaan C# akan lebih produktif daripada bila menggunakan C++. Bahasa C# masih merupakan turunan dari bahasa C, tetapi seolah2 dibuat lebih mudah dan produktif seperti Visaul Basic dengan tetap mempertahankan fleksibilitas dan “power” dari bahasa C.

Berikut adalah source code C# dalam membuat kalkulator :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;