Friday, 30 July 2010

Ascending dan Descending (1)

Ascending adalah metode pengurutan data dari yang terkecil hingga yang terbesar, sedangkan Descending kebalikkannya yaitu dari yang terbesar hingga yang terkecil. Dalam game metode ini banyak dijumpai contohnya siapa yang paling terkuat berdasarkan Strength, atau paling terkaya berdasarkan jumlah uang dari sekian player teratas (Top Player). Kalau pada game-game jaman dulu biasa dikenal dengan Highscore (mang sekarang apaan?), yang berisi daftar-daftar player yang mendapatkan poin atau skor tertentu. Biasanya hanya 10 player yang akan ditampilkan, yang terkecil pasti disingkirkan. Ok, berikut contoh programnya:

Link : http://rapidshare.com/files/410033140/31_Ascending_dan_Descending.7z
Size : 9 KB

Silahkan donwload terlebih dahulu, lalu perhatikan potongan kode berikut:

const int MAX_NILAI = 10;
int nilai[MAX_NILAI];

//meminta masukkan nilai ke array nilai.
printf("Masukkan nilai:\n\n");
for(int c=0;c<MAX_NILAI;c++)
{
printf("ke-%d\t= ",c+1);
scanf("%d",&nilai[c]);
}

//algoritma Ascending
for(int c=0;c<MAX_NILAI;c++){
for(int d=c+1;d<MAX_NILAI;d++){
if( nilai[d] < nilai[c]){
int _temp = nilai[c];
nilai[c] = nilai[d];
nilai[d] = _temp;
}
}
}
Pertama kita membuat variabel konstan (MAX_NILAI) untuk memudahkan pengubahan atau pemrosesan nilai pada loop (pengulangan). Lalu membuat sebuah sebuah variabel senarai (array) dengan jumlah sesuai variabel konstan sebelumnya. Variabel array ini lalu kita masukkan nilainya satu-satu dengan menggunakan pengulangan. Disini variabel konstan sangat membantu atau malah sangat penting. Karena jika jumlah pada array nilai hanya 5 dan pengulangan mungkin lebih dari 5, misal 6 pada saat meminta masukkan nilai dengan fungsi scanf() kemungkinan program akan berjalan aneh walaupun tidak sepunuhnya akan langsung tertutup atau crash. Tapi disini karena program belum terlalu kompleks sehingga keanehan itu masih samar-samar dan belum nampak sehingga butuh indra keenam, WEW!! . Yang pasti MAX_NILAI ini sangat membantu .

Setelah nilai diperoleh untuk masing-masing indeks (misal nilai[0], nilai[1], dst) maka kita mulai mengurutkannya. Pengurutan pertama adalah ascending (dari kecil ke besar), kita mulai dari indeks pertama, yaitu nilai[0] lalu dibandingkan dengan indeks selanjutnya yaitu nilai[1] sampai nilai[MAX_NILAI-1]. Kondisi yang dipakai adalah jika indeks selanjutnya (disingkat: nilai[d]) lebih kecil dari indeks yang sedang diperiksa (disingkat: nilai[c]) maka nilai[c] akan bertukar nilai dengan nilai[d]. Pertukaran nilai ini tidak langsung terjadi begitu saja dengan memberi nilai[d] langsung ke nilai[c]. Kita perlu membuat variabel (int _temp) untuk menampung nilai[c] agar nilai aslinya tidak tertimpah dengan nilai[d]. Untuk banyaknya pengulangan, misal MAX_NILAI adalah 10 maka pengulangan pertama (untuk nilai[0]) adalah 9 kali, sedangkan untuk indeks selanjutnya misal nilai[5] hanya perlu memeriksa nilai[(5+1)] sampai nilai[MAX_NILAI-1]. Karena sudah pasti indeks sebelumnya telah diurutkan dengan baik.

Tapi ini belum semua dibahas, so tunggu lanjutannya .

- krofz

Monday, 26 July 2010

Recovery Netbook Dell dan Acer One

Semakin canggih saja teknologi saat ini, terutama hardware-hardware sekarang yang bentuknya semakin kecil tetapi lebih canggih dari generasi sebelumnya. Sebut saja laptop yang dulu gedenya bukan main, dan beratnya mungkin hampir sama dengan mengendong seorang bayi (masa sih?) hahaha . Sekarang bentuknya mengecil hingga layarnya hanya 12-14 inch (dengan model widescreen) saja, dan biasa disebut Notebook. Masih dirasa kurang kecil dan kurang ringan, dibuat lagi yang ukuran layarnya hanya 10 inch, bentuk ini yang dinamakan Netbook.

Berbeda dengan Notebook yang rata-rata mempunyai Disc Player atau CD/DVD Drive, sedangkan Netbook tidak. Sehingga jika terjadi kerusakan pada Sistem Operasi (SO) akan mempermudah dalam menginstal ulang SO-nya kembali. Mungkin hal ini tidak masalah jika mempunyai DVD Eksternal atau alat tambahan seperti konverter IDE/SATA to USB dengan menggunakan CD/DVD Drive PC. Atau yang lebih ekstrem lagi menginstal dengan LAN/Network bahkan UFD (USB Flash Disk). Menginstal melalui perangkat eksternal memang rentan sekali gagal, misal menginstal melalui DVD Eksternal yang mungkin koneksinya sudah lemah sehingga kesenggol dikit bisa membuat perangkat tidak dikenali lagi. Belum lagi jika selesai drivernya umumnya belum terinstal. Dan jika Sistemnya Original/OEM seperti Windows maka perlu melakukan proses aktivasi yang lagi-lagi belum tentu berjalan lancar.

Tetapi tenang saja, netbook sekarang sudah terdapat cara 'Recovery System' yang tak perlu lagi melalui CD/DVD seperti jaman dulu. Cukup dengan menekan beberapa tombol saat boot awal Netbook maka anda akan dibawa keproses recovery sistem. Syaratnya cuma 2, yaitu tahu tombol recoverynya dan yang terpenting partisi Recoverynya tidak hilang atau terhapus. Partisi ini umumnya dihidden sehingga tidak terlihat (misal di My Computer) saat sistem selesai diinstal. Partisi ini hanya dapat dilihat dengan utiliti Disk Management untuk memastikan bahwa recovery dapat dilakukan. Bagaimana kalau sistem sudah tidak dapat berjalan dengan normal bahkan baru muncul tampilan awal, misal Windows XP saja sudah langsung restart?. Untuk mengetahui ada atau tidaknya partisi dapat menggunakan Bootable Disc seperti Hiren Boot CD (HBCD).

Langsung saja kita praktekkan, yang perlu dilakukan terlebih dahulu adalah memastikan bahwa tidak ada Data penting di dalam Netbook. Karena sudah pasti recovery akan membabat semua data yang ada di dalam partisi (umumnya drive C). Lakukan penyelamatan terlebih dahulu, bisa dengan safe mode (kalau masih jalan), bootable CD atau Live CD (misal HBCD atau ubuntu), dan jika masih belum berhasil cabut HDD-nya lalu gabungkan dengan komputer yang lain. Berikut ini tombol Recovery untuk Netbook Acer Aspire One, tekan secara bersamaan saat booting Netbook:

[ALT] + [F10]


Sedangkan untuk Netbook Dell:
[CTRL] + [F11]


Maklum untuk posting yang beginian karena pekerjaanku menjadi teknisi komputer tak memberiku waktu yang banyak saat ini hehehe atau karena males? hahaha . Untuk Notebook atau Netbook yang lain (mudah-mudahan) nanti akan menyusul .

- krofz

Friday, 9 July 2010

Mainkan Musiknya (3)

Tulisan ini merupakan lanjutan dari:
Mainkan Musiknya (1)
Mainkan Musiknya (2)

Perhatikan potongan kode berikut:

...
//di fungsi proses pada kelas tombol
if( X > kotak.x && X < (kotak.x+kotak.w) &&
Y > kotak.y && Y < (kotak.y+kotak.h))
{
Mix_PlayChannel(-1, sndKlik,0);
return true;
}
return false;
...
if ( Mix_PlayingMusic() == 0)
{
if ( Mix_PlayMusic(musik,-1)==-1) return 1;
}
...
Kita mulai dengan memainkan variabel efek suara (sound effect), dengan memanggil fungsi "Mix_PlayChannel()". Argumen pertama pada fungsi tersebut adalah channel yang akan dimainkan. Nilainya kok min 1 (-1)? Karena itu standarnya , sungguh tak memberikan solusi . Tidak-tidak, yang pasti fungsi Mix_PlayChannel hanya akan mencari channel yang tersedia lalu memainkan soundnya. Lalu argumen kedua adalah variabel yang akan digunakan. Dan yang ketiga adalah 'loop' atau putaran, yaitu berapa kali sound akan diputar lagi. Dalam hal ini nilai adalah nol jadi tidak ada siaran ulang . Fungsi Mix_PlayChannel ini kita letakkan di dalam kelas tombol, pada fungsi proses. Tepatnya berada pada pengecekkan apakah tombol di klik dengan benar?. Fungsi ini akan menghasilkan nilai -1 jika terdapat masalah saat memainkan sound FX, sehingga kita dapat menambahkan kondisi 'if'. Jika ingin melakukan sesuatu saat memainkan sound FX bermasalah, misal menampilkan pesan error, langsung menutup program, dan sebagainya.

Selanjutnya kita beralih ke fungsi untuk memainkan musik, yaitu "Mix_PlayingMusic()" dan "Mix_PlayMusic()". Kita periksa terlebih dahulu apakah musik sedang dimainkan? Jika belum (bernilai 0) maka saatnya memainkan musik dengan Mix_PlayMusic(). Argumen pertama adalah variabel atau musik yang akan dimainkan. Argumen kedua adalah berapa banyak waktu untuk berputar kembali (loop). Kita mengaturnya dengan nilai -1, yang artinya akan terus berputar sampai dihentikan paksa. Jika terjadi masalah maka fungsi ini akan bernilai -1, dan mungkin terpaksa program harus ditutup dengan return 1.

Karena aku tidak bisa menciptakan sound efek apalagi musik sendiri, jadi terpaksa pakai sound efek dan musik dari game lain dalam aplikasi ini. Dan jika ini yang anda lakukan juga ketika membuat game atau aplikasi biasa, sebaiknya membuat sebuah layout credits atau sejenisnya. Layout ini menjelaskan bahwa "Sound Effects" or "Musics" berasal dari game apa, situs apa atau siapa pembuatnya, dan anda berterima kasih karena itu. Hargai karya orang lain maka karya anda pasti dihargai . Akhir kata, Happy nge-Mix!

- krofz
 

back to top

back to top