Archive for the “Computer Science” Category

Ok, pada postingan kali ini saya akan membahas pembuktian Legendre Conjecture dengan teknik komputasi. Legendre Conjecture simpelnya seperti ini (menurut status FB teman saya) :

Selalu ada, paling tidak, 1 buah bilangan prima diantara kuadrat dua bilangan bulat positif yang berurutan

Nah, sesuai definisi Conjecture, yaitu pernyataan yang masih belum terbukti, kita memang akan sangat sulit membuktikannya secara analitik (menggunakan ilmu-ilmu pure mathematics), dan memang sampai saat ini belum ada manusia yang bisa membuktikannya. Tapi, setidaknya kita bisa membuktikan conjecture ini berlaku sampai suatu batasan bilangan bulat positif tertentu tentunya dengan dibantu komputer. :) Read the rest of this entry »

Comments 1 Comment »

Cara mempresentasikan bilangan desimal ke bilangan biner terbagi menjadi 2, Unsigned & Signed number. Panjang bit dari bilangan biner harus sudah ditentukan dan tidak berubah. Unsigned number hanya untuk bilangan positif. Contohnya Unsigned number yang terdiri dari 4 bit dapat mempresentasikan bilangan desimal 0 sampai 15. Namun, kalau kita juga ingin menuliskan bilangan negatif kita harus menggunakan Signed Number.

Signed Number adalah bilangan biner yang dapat mempresentasikan bilangan negatif. Ada banyak tipe Signed Number. Tapi yang akan kita bahas disini hanya 3 tipe saja yaitu sign-and-magnitude, one’s complement, two’s complement.

Sign-and-magnitude adalah cara yang paling mudah, kita tinggal menambahkan sign bit di bit terdepan (Most Significant Bit). Sign bit untuk bilangan positif adalah 0, negatif 1. Contohnya untuk 4 bit, dapat mempresentasikan angka 1111 (-7) sampai 0111 (7). Tapi, konsekuensinya ada dua tipe angka 0 yaitu 0000 (0) dan 1000 (-0). Cara ini digunakan komputer biner zaman dulu (misalnya IBM 7090), dan sudah jarang digunakan komputer saat ini. Read the rest of this entry »

Comments 1 Comment »

Algoritma Euclidean adalah salah satu algoritma tercepat untuk menghitung FPB (Faktor Persekutuan terBesar) / GCD (Greatest Common Divisor). FPB dari 2 angka adalah angka terbesar yang habis membagi 2 angka tersebut. Prinsip dari algoritma Euclidean ini adalah dari kenyataan bahwa FPB dari 2 angka tidak akan berubah jika angka terbesar dikurangi angka terkecil. Sebagai contoh, 22 adalah FPB dari 198 dan 110 (198 = 22 x 9; 110 = 22 x 5), 198 – 110 = 88 dan 110 tetap mempunyai FPB 22. Proses ini bisa terus di-ulang sampai salah satu dari angka tersebut adalah 0, sehingga angka yang lainnya adalah FPB dari 2 angka paling awal. Jika dilihat langkah – langkahnya sampai selesai :

(198, 110) -> (110, 88) -> (88, 22) -> (22, 0)

Dapat juga dituliskan secara prosedural :
198 = 110 x 1 + 88
110 = 88 x 1 + 22
88 = 22 x 4 + 0

Berdasarkan prosedur di atas, sekarang akan dibuat implementasinya di 4 bahasa pemrograman (C/C++, Assembly, Pascal, dan BASIC). Implementasinya akan berbentuk fungsi FPB dengan input 2 bilangan bulat (integer) 32-bit, dan output juga integer. Berikut ini adalah kode-kode fungsi FPB algoritma Euclidean di 4 bahasa tersebut : Read the rest of this entry »

Comments 1 Comment »

Hello World, Hello Bro, Halo Dunia.

Blog ini saya buat untuk mempublikasikan beberapa percobaan (riset) yang sedang/telah/akan saya pelajari di bidang Computer Science. Jika tidak saya publish disini mungkin percobaan-percobaan tersebut mungkin akan hilang dan saya lupakan, karena saya memang jarang menyimpan catatan/coretan di kampus dengan rapi. Jadi, alangkah lebih baik jika saya publikasikan dan simpan di blog ini saja, mungkin juga bisa menginspirasi pembaca-pembaca lainnya yang tertarik di topik yang sama.

Khusus untuk contoh-contoh kode (source code), saya akan usahakan membuatnya minimal di 4 bahasa pemrograman (Assembly, BASIC, C/C++, dan Pascal). Saya anggap 4 bahasa ini sudah mewakili sebagian besar bahasa pemrograman yang populer saat ini. Dan ada kemungkinan bertambah lagi jika nanti saya sudah mempelajari beberapa bahasa yang lain, seperti ML, Haskell, F#.

Ini adalah contoh program Hello World di 4 bahasa, coba tebak sendiri masing-masing bahasanya :)

int main() { printf("Hello World!"); }
Sub main(): MsgBox "Hello World!": End Sub
Begin Writeln('Hello World !');  End.
MODEL Small
    .STACK 100h
    .DATA
   msg db 'Hello, world!$'
    .CODE
  start:
  mov ah, 09h
  lea dx, msg
  int 21h
  mov ax,4C00h
  int 21h
  end start

Comments 1 Comment »