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”

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#)”

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”

Contoh penggunaan TABEL HASH

Dalam artikel ini akan saya bahas sedikit tentang contoh tabel hash yang paling simpel( kan saya ga pinter2 amat). Disini menggunakan simple fungsi hash, penanganan kolisi dengan linear probing dan tabel hash dengan ukuran yang tetap.

TABEL HASH

public class HashEntry {
      private int key;
      private int value; 

      HashEntry(int key, int value) {
            this.key = key;
            this.value = value;
      }      

      public int getKey() {
            return key;
     }

      public int getValue() {
            return value;
      }
}

Continue reading “Contoh penggunaan TABEL HASH”

Hashing Functions

Memilih fungsi hash yang baik, h(k), adalah sangat penting untuk pencarian berbasis hash-table. h merupakan distribusi elemen dari koleksi data yang secara unik menempati “SLOT” pada tabel hash. Kriteria dari key sebaiknya menghasilkan jumlah collision yang minimum.

Jika probabilitas key, k, terjaadi pada koleksi data kita P(k), kemudian terdapat m slot didalam tabel hash kita, maka uniform hashing function, h(k), adalah sebagai berikut:

uniform_hash.gif

Continue reading “Hashing Functions”

Finish : Praktikum 01 – Array

confused1.jpgTulisan ini merupakan lanjutan dari petunjuk sebelumnya….New Hint Praktikum 01. Dan sembari menunggu pagi , mending nulis-nulis. Semoga bisa bermanfaat bagi temen-temen semua. Untuk penutupan pada petunjuk kali ini saya akan membahas tentang yang no 3 dan 4.(lihat New Hint Praktikum 01 output no 3 dan 4).

Pada prinsipnya soal no 3 dan 4 adalah mirip sama :) . Langsung saja(dah keburu ngantuk) tahap awal dari masalah tersebut yaitu:

Continue reading “Finish : Praktikum 01 – Array”

Source Code Mesin Kata[sik mbulet, pokoke dadi]

Hasil Kompilasi dengan String :

saya    belajar       algoritma        dengan    bahasa    java

saya   belajar    java   dengan    siapa     “

adalah sebagai berikut

   saya    belajar       algoritma        dengan    bahasa    java 
saya   belajar    java   dengan    siapa      
Himpunan kata
-|saya             frek:0|-
-|belajar          frek:0|-
-|algoritma        frek:0|-
-|dengan           frek:0|-
-|bahasa           frek:0|-
-|java             frek:0|-
-|siapa            frek:0|-
saya
belajar
algoritma
dengan
bahasa
java
saya
belajar
java
dengan
siapa
Jumlah kata         :11
kata : saya         frek: 2
kata : belajar      frek: 2
kata : algoritma    frek: 1
kata : dengan       frek: 2
kata : bahasa       frek: 1
kata : java         frek: 2
kata : siapa        frek: 1

Continue reading “Source Code Mesin Kata[sik mbulet, pokoke dadi]”

Mesin Kata

“Atas permintaan seseorang yang tidak bisa tolak permintaannya maka muncullah tulisan yang sederhana ini. Semoga bermanfaat.”

Pendahuluan

Mesin kata, apakah gerangan itu? Sebenarnya hanya program untuk mengenali kata pada suatu karakter dan mencatat frekuensi  kemunculannya. Namun apakah sesederhana itu? Tentu saja tidak karena perlu analisa yang cukup lama bagi seseorang yang jarang ngoding. Kadang-kadang meskipun kita tahu bagaimana alur logika program yang akan dibuat kita masih sering dibuat bingung pada saat implementasi pada program. Pada kesempatan kali ini saya menggunakan java sebagai contoh.

Continue reading “Mesin Kata”

Prak01 – Tipe Data Array

Hasil running program pada Praktikum 1 yang saya buat kira-kira seperti ini tampilannya, tapi anda tidak perlu “ngeplek” atau sama dengan ini,

CREATE YOUR OWN CODE:

--------------------------------------------
 No |  Nama/Game   | 1 | 2 | 3 | 4 | 5 | 6 |
--------------------------------------------
 1  |  Agus        | A | C | E | D | B | F |
 2  |  Budi        | D | D | F | C | D | B |
 3  |  Elok        | C | E | A | B | F | A |
 4  |  Fajar       | D | F | B | A | A | D |
 5  |  Gaguk       | E | F | F | A | C | C |
 6  |  Haryono     | C | E | E | B | E | E |
 7  |  Joko        | A | C | E | D | B | F |
 8  |  Kadir       | D | B | C | C | C | C |
 9  |  Naryo       | E | B | D | E | B | B |
 10 |  Puji        | B | A | B | F | A | D |
--------------------------------------------
Nama orang yang satu kelompok dalam semua permainan.
Nama            : Agus(output)
Nama            : Joko(output)
Kelompok        : ACEDBF(output)

Banyaknya kelompok dalam suatu permainan
Input Permainan: 3(input)
Jumlah Kelompok: 6(output)

Daftar siswa yang berada dalam satu kelompok tepat n kali dengan X
Nama Siswa        : Budi(input)
Frekuensi bersama : 2(input)
Daftar Siswa      : Kadir (output)

Daftar siswa-siswa yang tak pernah berada dalam satu kelompok dengan
peserta tertentu
Nama Siswa        : Budi(input)
Daftar siswa tak pernah 1 kelompok  : Agus Elok Haryono Joko Puji(output)

Continue reading “Prak01 – Tipe Data Array”