LINQPad In Action : Studi kasus Palindrome

PALINDROME ialah kata, frasa, atau kalimat yang jika dibaca dari depan atau belakang.
Misalnya:

  1. Lutfi –> bukan palindrom karena lutfi tidak sama jika dibaca dari belakang iftul
  2. onno –> merupakan palindrom karena dibaca dari depan atau belakang sama

Pertanyaannya, bagaimana cara mendeteksi apakah kata itu berupa palindrom atau bukan?

SOLUSI

[bahasa manusia] tinggal dibalik saja katanya, jika sama maka palindrom
[algoritma]

  • tentukan index min (0) dan max(panjang string dikurangi 1)
  • ulangi sampai minimum > maksimum
  •  – jika karakter dengan index min tidak sama dengan karakter index max maka bukan palindrom
  • – nilai min ditambah 1 dan max dikurangi 1
  • kata tersebut ada lah palindrom

Continue reading “LINQPad In Action : Studi kasus Palindrome”

Just curious about code – Static Block Java

Sekedar iseng dan penasaran dengan code java di soal UTS pemrograman II dulu. Percobaan iseng kali ini melibatkan fungsi java tanpa nama. Bagaimana ceritanya tanpa nama? ok perhatikan kelas sederhana  berikut :

class A{
	{
		System.out.println("Saya Ilkom Kelas A");
	}

}

Tanpa mencobanya, kira-kira anda menebak code diatas bisa jalan dikompile tanpa error atau tidak?

Continue reading “Just curious about code – Static Block Java”

Cara install windows phone sdk di Windows 8

Pada saat windows 8 consumer preview rilis, saya langsung mencoba windows 8. Dan kesan pertama memakainya agak frustasi, karena secara default dotnet 3,5 tidak terinstall (mendadak galau). Tetapi hasil otak-atik ternyata dotnet 3,5 framework di win8 bisa diaktifkan melalui “Turn Windows feature on off” di control panel. Dan masalah selesai.
Kemudian besoknya mencoba untuk ngoprek windows phone, tapi sekali lagi ada masalah. Xna framework tidak disupport (mendadak galau lagi). Setelah beberapa hari turun gunung dan mencari ilmu di blognya para developer Microsoft, akhirnya menemukan solusinya. Dan terbukti berhasil.
Berikut langkah-langkahnya:

  1.  Persiapkan installer yang di perlukan, installer windows phone sdk bisa didapat di http://www.microsoft.com/en-us/download/details.aspx?id=27570 atau untuk offline installernya  dan gfwlivesetup di http://www.microsoft.com/en-us/download/details.aspx?id=5549
  2. Pastikan anda sudah menginstall visual studio 2010 dengan SP 1, jika sudah selesai persiapannya langsung saja lakukan proses instalasi dengan urutan gwlivesetup.exe dahulu kemudian diikuti instalasi windows phone

Mudah bukan? smoga bermanfaat. Happy coding ^_^

Auto property set get di C++ class

Welcome to the C++ world Open-mouthed smile

Kali ini saya akan berbagi tips untuk membuat property otomatis di C++ seperti halnya pada sintax di code C#. Seperti apa tipsnya? Tapi setelah yg satu ini.  hehe…Maksudnya setelah kita contoh source code simple header  dari kelas berikut:

#ifndef SAMPLECLASS_H
#define SAMPLECLASS_H

//sample header class dengan property set get
class SampleClass
{
public:
	void setNo(const int &no);
	int no() const;
private:
	int no;
}

#endif

Contoh diatas cuma ada 1 private member, tapi jika kita akan membuat kelas dengan banyak private member pasti bener capek buat set get method, belum lagi logic method yang akan digunakan nantinya. Di dalam C# dikenalkan auto property dengan set get method yg inline seperti berikut:

public int No{ set; get; }

Lalu bagaimana caranya supaya bisa buat auto property di C++ seperti code di C#?

Continue reading “Auto property set get di C++ class”

Optimasi fungsi Math.Exp dan Math.Pow di C#

Karena tidak ada kerjaan semalam jadi iseng2 ja nyari artikel tentang optimasi di C#, maklumlah ane kan programmer C#. :D. Setelah mencari-cari ternyata nemu cara optimasi yang aneh tapi bener sip. Pertama kali yang saya bahas disini yaitu fungsi exponensial. Dalam C# sudah ada fungsi yang menangani perpangkatan exponensial, tp itu belum cukup optimal karena ada cara lain yang lebih cepat dalam menghitung e^val.

		public static double Exp(double val) {
    		long tmp = (long) (1512775 * val + (1072693248 - 60801));
    		return BitConverter.Int64BitsToDouble(tmp << 32);
		}

Continue reading “Optimasi fungsi Math.Exp dan Math.Pow di C#”

Penyelesaian Kasus Diagonal V dengan Array 2 Dimensi (C#)

Terinspirasi dari artikelnya jefrey hermanto tentang solusi kasus diagonal V, iseng2 ja bikin programnya cz cukup simple. Mungkin ada yang belum tau apa itu diagonal V,  tp apa gmna ya njelasinnya. Bingung ndiri, hehehe…Tapi kira-kira bentuknya seperti ini.

Input: 3
3 2 1 2 3
2 3 2 3 2
1 2 3 2 1
2 3 2 3 2
3 2 1 2 3

Nah kira-kira seperti itulah bentuknya, dan solusinya cukup mudah logikanya. Langsung aja saya ambil dari artikelnya jefrey hermanto…hehehe….

KANAN  5 4 3 2 1 2 3 4
BAWAH  4 3 2 1 2 3 4 5
KIRI   4 3 2 1 2 3 4 5
ATAS   5 4 3 2 1 2 3 4 

      ----------->
  5 4 3 2 1 2 3 4 5
  4               4
  3               3
  2               2
  1               1
  2               2
  3               3
  4               4
  5 4 3 2 1 2 3 4 5
     <------------

Continue reading “Penyelesaian Kasus Diagonal V dengan Array 2 Dimensi (C#)”

Tutorial jQuery: Dasar-dasar selectors

Bismillah, sudah lama vakum akhirnya bisa nulis jg. Tulisan pertama bulan ini yaitu tutorial jquery tentang selectors. Ga usah basa-basi lagi langsung aja disiapkan peralatan perangnya yaitu NotePad++, jQuery JavaScript Library v1.4, browser tentunya(disarankan menggunakan mozilla firefox + plugin firebug biar gampang debugging-nya) dan jangan lupa berdo’a biar diberi kemudahan oleh Allah dalam memahami tutorial ini.^_^

Anatomi JQuery Script

Pada dasarnya skrip JQuery terbagi atas tiga bagian utama yaitu Selector, action, dan parameter. Contoh penulisannya sebagai berikut :

jQuery("elemen").action("parameter");
//atau bisa juga ditulis sebagai berikut
$("elemen").action("parameter");

Simple kan? Continue reading “Tutorial jQuery: Dasar-dasar selectors”

Sorting kata menggunakan Quick Sort

Setelah lama vakum ngeblog karena diterpa badai skripsi, akhirnya bisa kembali berbagi sedikit code yang mungkin berguna 🙂 .

Langsung saja, bagi yang sering ngoding atau ngutek-ngutek algoritma sorting pasti sudah paham yang namanya quicksort yang sangat cepat dalam proses sorting. Namun sebagian besar dari kita hanya mengetahui penggunaannya untuk sorting angka, bagaimana jika untuk sorting kata? Berikut langkah-langkahnya:

  1. Jika terdapat kata-kata misalnya “akar” dan “akan” mak untuk melakukan sorting kita perlu membandingkan satu persatu hurufnya mulai dari paling kiri. Tetapi terdapat 3 huruf yang sama dan hanya huruf yang terkhir yang bisa untuk membandingkan. Hasilnya jika disorting secara ascending maka diperoleh “akan” kemudian “akar.
  2. Jika terdapat code quicksort seperti dibawah ini:
static int partition(ref intp[] arr, int left, int right)
{
      int i = left, j = right;
      int tmp;
      int pivot = arr[(left + right) / 2];
      while (i <= j) {
            while (arr[i] < pivot)
                  i++;
            while (arr[j] > pivot)
                  j--;
            if (i <= j) {
                  tmp = arr[i];
                  arr[i] = arr[j];
                  arr[j] = tmp;
                  i++;
                  j--;
            }
      };
      return i;
} 

static void quickSort(ref int arr[], int left, int right) {
      int index = partition(ref arr, left, right);
      if (left < index - 1)
            quickSort(ref arr, left, index - 1);
      if (index < right)
            quickSort(ref arr, index, right);
} Continue reading "Sorting kata menggunakan Quick Sort" 

Instalasi JOGL di Windows

Instalasi JOGL pada Windows
Setting Java Environment
Sebelum memulainya jangan lupa ucapkan Bismillah biar lancar instalasinya ?. Setelah itu kita mempunyai 2 pilihan JOGL yang pertama JOGL lama dan JOGL JSR-231. Tapi tenang saja keduanya dibahas oleh penulis.
Pastikan terlebih dahulu JDK(java development kit) sudah terinstall terlebih dahulu dan classpath-nya sudah diatur. Jika belum tahu pengaturan classpath, baca Setting Classpath pada java.
1.    Instalasi JOGL(versi jadul dari JOGL)
Langkah pertama yang dilakukan adalah kunjungi https://jogl.dev.java.net/ dan unduh file JOGL(bukan JSR-231).
Pastikan file yang di unduh berisi :
    jogl.jar
dan library(windows):            Linux :

    jogl.dll                       libjogl.so
    jogl_cg.dll                  libjogl_cg.so

Letakkan file jar pada direktori:
adalah C:\Program Files\Java\jdk1.6.0_17\jre\lib\ext
and the libraries in :
adalah C:\Program Files\Java\jdk1.6.0_17\jre\bin

2. Instalasi JOGL JSR 231
Langkah pertama yang dilakukan adalah kunjungi https://jogl.dev.java.net/ dan unduh file JOGL JSR-231.
Archives download berisi File jar :

    jogl.jar
    gluegen-rt.jar

serta library (Windows):   or    for Linux :

    jogl.dll                           libjogl.so
    jogl_awt.dll                       libjogl_awt.so
    jogl_cg.dll                        libjogl_cg.so
    gluegen-rt.dll                     gluegen-rt.so

Letakkan file jar pada direktori:
adalah C:\Program Files\Java\jdk1.6.0_17\jre\lib\ext
dan letakkan pada direktori berikut :
adalah C:\Program Files\Java\jdk1.6.0_17\jre\bin

 
C:\Program Files\Java\jdk1.6.0_17 merupakan path dari instalasi java di komputer penulis.
dan langkah-langkahnya sama seperti diatas tetapi C:\Program Files\Java\jdk1.6.0_17 diganti C:\Program Files\Java\jre1.6.0_03

Hal itu dilakukan agar class yang telah di kompile bisa dijalankan oleh run time java.
Setelah proses diatas selesai sekarang siap ngoding openGL di Java.



Untuk melihat hasil dari setting diatas berhasil atau tidak kita perlu membuat program openGL sederhana seperti berikut:

//sayMost.java
import javax.media.opengl.*; //untuk JOGL versi lama pemanggilannya import net.java.games.jogl.*
import java.awt.*;
import java.awt.event.*;

public class sayMost{
public static void main(String[] args)
{
Frame frame = new Frame("Say MOST");
GLCanvas canvas = new GLCanvas();
frame.add(canvas);
frame.setSize(300, 300); //mengatur ukuran frame berukuran 300px x 300px

frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
frame.show();
}
}

Maka tampilan dari program diatas adalah sebagai berikut:



Kompilasi program diatas hanya menggunakan command prompt dengan cara kompilasi


javac C:\sayMost.java

dan untuk menjalankannya dengan perintah berikut:.
          java C:\sayMost

Setting Classpath pada java

Pertama-tama install terlebih dahulu java development kit dan installernya dapat diunduh di http://java.sun.com.

Setelah instalasi jdk selesai, maka diperlukan untuk mendefinisikan system variabel. Pertanyaannya, untuk apa mendefinisikan system variabel? Dengan mendefinisikan system variable, maka perintah yang dalam direktori yang akan kita definisikan dapat diakses melalui command prompt.

Langkah pertama yaitu klik Start-> Contol Panel-> System / klik kanan My Computer maka akan muncul tampilan seperti dibawah ini:

pilih tab Advanced dan klik pada tombol Environment Variables.

Kemudian pilih Path pada System Variables dan klik tombol Edit, setelah itu isikan PATH atau alamat lengkap dari direktori bin dari JDK, tetapi tidak perlu mencantumkan RT RW. Contohnya alamat bin di komputer penulis adalah C:\Program Files\Java\jdk1.6.0_17\bin maka dalam variable value ditambahkan alamat tersebut dan contohnya seperti pada gambar dibawah ini:

Jika alamat lengkap telah dimasukkan maka klik ok dan klik ok sekali lagi, nah sekarang kita bisa mengakses perintah kompilasi javac dan perintah eksekusi classjava melalui cmd atau command prompt.Setelah proses ini selesai anda bisa menggunakan cmd untuk kompilasi dan menjalankan java class. Namun untuk kemudahan disarankan menggunakan SciTe sebagai editor.
Happy coding….

Iseng2 ga berhadiah :Fungsi Kombinasi Rekursif pada “array of String”

Karena sedang pusing mengerjakan program Watermarking untuk PKL yang masih banyak “Kecoaknya”, maka dari itu refreshing sambil bikin program kombinasi N kelompok. Apabila terdapat N kelompok maka pada program akan ditampilkan semua kombinasi yang mungkin, mulai dari satu kelompok hanya satu orang sampai satu kelompok 7 orang. Outputnya seperti ini…

|Ardhi
|Ardhi|Bayek
|Ardhi|Bayek|Alfath
|Ardhi|Bayek|Alfath|Dimas
|Ardhi|Bayek|Alfath|Dimas|Edan
|Ardhi|Bayek|Alfath|Dimas|Edan|Fian
|Ardhi|Bayek|Alfath|Dimas|Edan|Fian|Gila
|Ardhi|Bayek|Alfath|Dimas|Edan|Gila
|Ardhi|Bayek|Alfath|Dimas|Fian
|Ardhi|Bayek|Alfath|Dimas|Fian|Gila
|Ardhi|Bayek|Alfath|Dimas|Gila
|Ardhi|Bayek|Alfath|Edan
|Ardhi|Bayek|Alfath|Edan|Fian
|Ardhi|Bayek|Alfath|Edan|Fian|Gila
|Ardhi|Bayek|Alfath|Edan|Gila
|Ardhi|Bayek|Alfath|Fian
|Ardhi|Bayek|Alfath|Fian|Gila
|Ardhi|Bayek|Alfath|Gila
|Ardhi|Bayek|Dimas

Continue reading “Iseng2 ga berhadiah :Fungsi Kombinasi Rekursif pada “array of String””

Fungsi Kombinasi Rekursif pada suatu kelompok karakter

/*************************************************************************
 *  Kompilasi:  javac Combinations.java
 *  Eksekusi:    java Combinations N
 *  
 *
 *  kedua fungsi  (comb1 dan  comb2) mencetak secara alfabetik
 *
 *  % java Combinations 3
 *  
 *  a
 *  ab
 *  abc
 *  ac
 *  b
 *  bc
 *  c
 *
 *  a
 *  ab
 *  abc
 *  ac
 *  b
 *  bc
 *  c
 *
 *
 *************************************************************************/

Continue reading “Fungsi Kombinasi Rekursif pada suatu kelompok karakter”