Programming

Combination ( Kombinasi a.k.a nCk )

Categories: Algoritma, Programming | November 21st, 2008 | by Felix J | no comments

Combination ( Kombinasi a.k.a nCk )

Dalam ilmu matematika, sebuah kombinasi itu adalah gabungan beberapa objek dari suatu grup tanpa memperhatikan urutan. Jadi, {5,4,6} sama aja dengan {4,5,6} :)

Kombinasi biasanya dipake untuk menyelesaikan soal seperti ini:
Ada berapa kombinasi jika kamu hanya bisa membawa 3 pensil dari 4 pensil yang tersedia?

Continue Reading »

Read Full Post »

BNPCHS (BNPC-HS) 2008

Categories: Algoritma, Berita, Programming | November 18th, 2008 | by Felix J | no comments

Halo semua, untuk para pembaca blog-ku yang sepi ini dan masih berstatus sebagai siswa SMU, dan tentu saja doyan ma yang namanya Programming (Espescially Algoritma), cuman mau kasi tau bahwa BNPC-HS 2008 akan segera dimulai.

Jangan sampe ketinggalan lho, karena event ini kalo menang bisa Kuliah Gratis di Jurusan Teknik Informatika Binus (untuk IPA), atau di Jurusan Sistem Informasi / Komputerisasi Akuntansi Binus (untuk IPS), dan tentu saja punya kesempatan untuk memperkuat Binus Programming Team :) .

Buat yang gak tau, BNPC-HS (BiNus Programming Contest for High School) adalah Kontes pemrograman yang diadakan tahunan oleh Binus University untuk level SMA (High School), dan lombanya itu bersifat perorangan.

Penyisihan:
7 Desember 2008, Jam 13.30 - 16.30
- Soal berupa Pilihan Ganda (50 nomer). Materi : Seputar Algoritma, B. Pemrograman, dan Pengetahuan tentang Ilmu Komputer
- Soal pemrograman (ACM Mode) sebanyak 3 Problem.

Perlu diingat bahwa Penyisihan ini bersifat Online Contest, Jadi kalian Online dari Rumah (atau mana saja) untuk mengerjakan 50 soal PG + 3 Problem Soal Pemrograman (ACM Mode). Jika tidak dapat menemukan koneksi internet yang baik ( atau kesusahan untuk mencari koneksi internet ), Binus University menyediakan ruang lab untuk meng-akomodasi Online contestnya. Tinggal dateng aja ke Kampus Anggrek Binus university lantai 6… 25 orang peserta terbaik & 2 orang terbaik dari masing-masing SMU akan lolos ke Babak Final.

Babak Final :
14 Desember 2008, Jam 09.00 - 16.30
Untuk Final, Soalnya adalah Soal Programming (ACM Mode).

Perlu diingat bahwa untuk babak Final ini, sifatnya adalah Onsite Contest. Jadi anda harus datang ke Binus University untuk mengikuti Final BNPC-HS 2008 ini. Contest akan diselenggarakan di Lab Software Binus University lantai 6.

Compiler / Software yang digunakan:
Untuk lomba ini, disediakan BC31, DevC++, Java 6, dan FPC 2.2.0

Hadiah :
# Champion, 1 Orang: Hadiah berupa Uang Tunai Rp. 2.500.000,00 + Plakat + Piagam + Bebas biaya studi di Prodi Teknik Informatika untuk lulusan IPA, dan Sistem Informasi / Komputerisasi Akuntansi untuk lulusan IPS di BINUS University (146 SKS).
# Medali Emas, 2 Orang: Hadiah berupa Uang Tunai Rp. 1.750.000,00 + Medali + Piagam
# Medali Perak, 3 Orang: Hadiah berupa Uang Tunai Rp. 1.250.000,00 + Medali + Piagam
# Medali Perunggu, 4 Orang: Hadiah berupa Uang Tunai Rp. 1.000.000,00 + Medali + Piagam

Pendaftaran:
Pendaftaran bisa langsung dateng ke Admisi di Kampus Anggrek Binus University
atau dengan pendaftaran online yang bisa dilakukan di link ini.

Informasi Lebih Lanjut silahkan ke:
Customer Service BNPC-HS 2008
u.p. Sdri. Vera dan Sdri. Friska.
Ruang Admisi BINUS UNIVERSITY
Kampus Anggrek, Jl. Kebon Jeruk Raya No.27,
Kebon Jeruk, Jakarta Barat 11530
Telp. (021) 53-69-69-69 / (021) 53-69-69-99
Fax (021) 535-0655
e-mail : lombati@binus.ac.id

Untuk lebih lengkapnya silahkan bisa ke Homepage BNPC-HS 2008 langsung di http://competition.binus.ac.id/

Ayo buruan daftar… Jangan lewatin kesempatan untuk bisa Kuliah Gratis di Binus :)

*Untuk Contoh Soal, bisa liat disini, dan juga ada arsipnya disini, dan beberapa pembahasan disini, dan disini*

Enjoy Learning selama 2 minggu lebih ini agar bisa tampil di Final bagi yang mengikuti lomba ini :)

Read Full Post »

ACM/ICPC 2008 Asia Regional - Jakarta Site

Categories: Algoritma, Cerita, Programming | October 30th, 2008 | by Felix J | 6 comments

Hoaammm… Udah lama juga sejak gua terakhir kali update ini blog. Setelah kelar sekitar seminggu lebih ACM/ICPC ini baru aja bisa update blog dengan tulisan ini :p . Karena kemarin itu setelah ICPC selesai, besoknya langsung ke Bandung… Jadi yah baru ada waktu hari ini. Sebenarnya banyak yang ingin diceritain sih… tapi gua mulai ceritain dlu dari ACM/ICPC baru Gemastik dan yang lainnya y… :p *stay tuned on my blog !! :p *

Ini gua bagi menjadi beberapa halaman biar bacanya enak dan terstruktur :p *apa sih? :p *

Hari H-1 : Notebook & Mental Preparation.
Hari H : Registration, Opening Ceremony, & Practice Contest.
Hari H+1 : Contest Proper, Excursion, & Closing Ceremony.

My Team :
Team Name : Gomenix
Consists of :
1. Felix Jingga (Me, Teknik Informatika 2008)
2. Johan Lemena (Teknik Informatika 2007)
3. Garry Linford (Teknik Informatika 2007)

Read Full Post »

Pada post kali ini, saya akan membahas tentang operasi bitwise… Mengapa ada post ini? agar orang yang membaca pada post sebelumnya (Baca: [Algorithm] Swap Two Values) mengerti tentang cara yang ke-3 yang diajarkan pada post sebelumnya itu… :)

Apa itu bitwise operation? *Ada yang tau? :P * Humm… Bitwise Operation adalah operasi yang dilakukan dalam tingkatan satuan bits…

Masih tertarik setelah mendengar kata-kata diatas? :P kalo ya, Mari kita lanjutkan… *Kalo gk, ya… jangan diterusin… beresiko ntar tuhh~~ hehehe… j/k j/k*

Continue Reading »

Read Full Post »

Minggu (1/6/2008), aku mencoba untuk mengikuti INC 2008 Qualification Round jadi peserta tersembunyi *Thanks to Bapak Suhendry telah memberikan izin :)* mencoba-coba untuk solve problems… INC 2008 untuk babak Qualification ini memiliki 5 problems yang harus diselesaikan sekitar 3 jam (jam 1.00 - 4.00), tapi aku baru bisa login pada 1 jam terakhir, karena Pak Suhendry ternyata sedang super sibuk, jadi baru bs diberikan sekitar hampir 1jam sebelum selesai.. (So, aku hanya punya waktu 1 jam untuk membaca, memikirkan solusi dan mengkodingnya dengan benar).

Kita mulai saja… *Lanjutkan ke halaman berikutnya…*

Read Full Post »

[Algorithm] Swap Two Values

Categories: Algoritma, Programming | May 13th, 2008 | by Felix J | 10 comments

Untuk post kali ini, masih berhubungan dengan post yang sebelumnya. Pada post kali ini, saya akan menjelaskan beberapa teknik untuk menukar nilai dari 2 variabel. maksudnya jika kita mempunyai variabel a dengan nilai 1 dan variabel b dengan nilai 2. maka setelah kita tukar nilainya, variabel a mempunyai nilai 2 dan variabel b mempunyai nilai 1.

Tertarik dengan Tema ini? :P
Continue Reading »

Read Full Post »

[Algorithm] GCD - LCM / FPB - KPK

Categories: Algoritma, Programming | May 13th, 2008 | by Felix J | 2 comments

GCD - LCM / FPB - KPK… Greatest Common Divisors - Lowest Common Multiples ato Faktor Persekutuan Terbesar - Kelipatan Persekutuan Terkecil adalah salah satu pelajaran matematika yang pernah kita dapatkan sewaktu SD… Masih ingatkah anda? Coba buka-buka lagi dhe buku pas SD dlu :P :P hehehehe… kalo gk ada, yah dengan post ini, saya coba bantu ingatkan anda dengan contoh yang simpel…
Continue Reading »

Read Full Post »

[Algorithm] Prime Test (Uji Bilangan Prima)

Categories: Programming | April 30th, 2008 | by Felix J | 3 comments

Kenalkah anda dengan bilangan yang disebut dengan bilangan “Prima” ?? Saya yakin anda mengetahui dan mengenal apa itu bilangan “Prima”

Apa itu bilangan “Prima”? Sebuah bilangan bisa dikatakan bilangan “Prima” apabila bilangan tersebut hanya dapat di bagi oleh bilangan itu sendiri dan angka ‘1′…. contohna kita ambil contoh saja dengan bilangan ‘5′.. mari kita liat bilangan ‘5′ apakah prima atau tidak… (Nb: Pengecekan dimulai dari angka 2)

5 % 2 = 1
5 % 3 = 2
5 % 4 = 1
5 % 5 = 0

Sekarang, terbukti bahwa angka 5 adalah bilangan prima karena hanya habis dibagi oleh angka itu sendiri… bagi yang mendalami komputer, pasti akan tau tanda ‘%’ itu adalah ‘modulo’ (sisa pembagian)

Ok, enough with the introduction… sebenarnya Prime Test Algorithm ini sebenarnya bisa kita implementasikan dengan berbagai cara. Salah satunya adalah cara ‘naif’ (naive) yang meng-loop dari angka 2 (bahkan ada yang memulai dari angka 1. No problem) sampai angka itu sendiri, dan jika sebelum angka itu sudah terdapat angka yang habis dibagi, maka itu bukan bilangan prima. contohnya adalah dengan kode seperti ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
 
int main()
{
	int n,flag=1;
	scanf("%d", &n);
 
	for (int i=2; i<n; i++)
	{
		if (n%i==0)
		{
			printf("Bukan Prima\n");
			flag = 0;
			break;
		}
	}
	if (flag) printf("Prima\n");
 
	return 0;
}

yah… cara diatas sangat naif… langsung tembak. dan pasti benar… :) *hanya jika bilangan2 kecil… :P* bagaimana jika input saya berikan menjadi di atas jutaan? saya yakin dengan algoritma diatas, hasil yang akan keluar pasti sangat lambat…

Bagaimana cara mengoptimisasi cara pengecekan tersebut? Baiklah, kita mulai dari berbagai ‘properties’ bilangan prima itu sendiri… yang dapat kita simpulkan dari sebuah bilangan prima adalah sebagai berikut :

  1. Bilangan Prima adalah Bilangan Ganjil kecuali angka ‘2′
  2. Angka 2 adalah Bilangan Prima
  3. Angka 1 adalah bukan Bilangan Prima

Setelah melihat di atas, maka dapat kita buat kode untuk mengecek bilangan itu lebih efisien lg menjadi seperti ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
int is_prime(int n)
{
	if (n==1) return 0;
	if (n==2) return 1;
	if (n%2==0) return 0;
 
	for (int i=3; i<n; i+=2)
	{
		if (n%i==0)
			return 0;
	}
	return 1;
}

Sampai disini, ternyata algoritma ini sudah cukup cepat… tapi tetap saja kurang cepat untuk berbagai bilangan diatas jutaan… bagaimana kita mengoptimisasinya lagi? jawabannya adalah kita hanya mengecek hanya sampai pada akar dari bilangan tersebut… mengapa demikian? karena angka yang melebihi akar dari bilangan tersebut sudah pasti tidak akan dapat membagi bilangan tersebut… *untuk yang satu ini, silahkan anda buktikan sendiri :)*

dengan begitu, kita dapat memperbaharui kode tersebut menjadi :

1
2
3
4
5
6
7
8
9
10
11
12
13
int is_prime(int n)
{
	if (n==1) return 0;
	if (n==2) return 1;
	if (n%2==0) return 0;
 
	for (int i=3; (i*i) <= n; i+=2)
	{
		if (n%i==0)
			return 0;
	}
	return 1;
}

bisa kita liat disitu ada (i*i) yang dimaksud dengan ini adalah akarnya. Misal 25, maka akarnya adalah 5, dengan dijalankan kode diatas, terlihat i*i = 25… jadi statement diatas hanya merupakan restatement dari sqrt(n) saja. bedanya, disini tidak melibatkan floating number… :)

*Updated*
Karena kesalahan saya yang melupakan bahwa kode diatas dapat overflow jika n mencapai batas integer, maka dengan update ini, saya akan mengupdate kode diatas sehingga jika terdapat n yang sampai ke batas integer pun tidak masalah. Kode dibawah ini saya tambahkan karena diingatkan oleh Bp. Suhendry. *Terima Kasih om Shu…*

1
2
3
4
5
6
7
8
9
10
11
12
int is_prime(int n)
{
	if (n==1) return 0;
	if (n==2) return 1;
	if (n%2==0) return 0;
 
	for (int i=3; i <= n/i; i+=2)
	{
		if (n%i==0)
			return 0;
	}
	return 1;

Kode diatas ini, akan lebih lambat. Karena yang seperti Bp. Suhendry bilang bahwa cost operasi pembagian lebih besar dari perkalian.

dengan kode terakhir yang diatas, anda dapat melakukan pengujian bilangan prima lebih cepat 25x dari kode naif semula..

Akhir kata, semoga tutorial ini bermanfaat untuk anda. :) *Kritik dan Saran dipersilahkan.. :)*

- Felix J

Read Full Post »

BNPCHS 2007 Final

Categories: Cerita, Programming | December 17th, 2007 | by Felix J | no comments

Akhirnyaaaa…. dateng juga itu tanggal penting !! tanggal dimana gw ikut BNPCHS 2007 Final Round.. Hehehe…

Well, Ceritanya Begini… ehem ehemm…. Hehehehe…

Continue Reading »

Read Full Post »

BNPCHS 2007 Qualification

Categories: Cerita, Programming | December 16th, 2007 | by Felix J | 2 comments

Huhhh… mau mulai darimana yah :) hehehe…

ok dhe, skarang gw mulai cerita aja d.. pas itu tepatnya tanggal 11 November 2007, hari minggu di pagi hari yang cerah.. gw bangun dari tidur gw jam 9an gitu.. buat siapin mental trus juga buat siap2in bahan biar nantinya kalo perlu apa gitu, jadi cepet.. mulai gw buka website2 algo yang biasa gw kunjungin trus abis itu gw catet smua computation complexity dari berbagai algoritma. karena gw tau ini pasti salah satu soal populer… jadi gw siapin dluw in case needed hehehehe…

Continue Reading »

Read Full Post »


Chase The Limit is powered by WordPress.
Theme designed by Web Hosting Geeks
Sponsored by FDHosting.com - Fast Dependable Hosting and Cheap TFT Monitors