Tuesday, 4 March 2014

JavaFX: Membuat Aplikasi Pemutar Video Sederhana [Part 1]

Pada kesempatan kali ini, saya akan berbagi tutorial sederhana membuat aplikasi pemutar video menggunakan JavaFX.

JavaFX adalah sebuah software platform untuk membangun aplikasi RIA (Rich Internet Application). Selain itu JavaFX juga dibuat dengan tujuan untuk menggantikan posisi Swing dalam membangun aplikasi desktop. Untuk penjelasan lebih lanjut bisa searching di google. :p

Langsung aja, buka Netbeans IDE (atau editor lainnya).

1. Buat project baru. Klik File >> New Project

2. Pilih Category >> JavaFX dan Project >> JavaFX Application.


3. Kemudian masukkan Project Name (nama project terserah),kemudian pilih lokasi penyimpanannya, kemudian uncheck pada bagian Create Application Class.


4. Nah Project udah dibuat, kemudian pilih project, pada bagian Source Packages, klik kanan, buat Package baru.Disini saya kasih nama packagenya jfx.example.ergun.videoplayer.



5. Setelah bikin package, kita buat Class baru, saya kasih nama classnya VideoPlayerEX.




6. Nah selanjutnya adalah bagian yang kita tunggu-tunggu, yaitu bagian codingnya. :p

Berikut kode yang saya buat :

package jfx.example.ergun.videoplayer;

import static javafx.application.Application.launch;
import java.io.File;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.util.Duration;

/**
 * @Developer    : Erik Gunawan
 * @Nickname     : EXz
 * @Phone        : 0896 5332 0577
 * @Email        : erik.gunawan44@gmail.com
 * @Facebook     : facebook.com/revolutionist.exz
 * @Twitter      : twitter.com/_EXz
 */

public class VideoPlayerEX extends Application {
   
    File file;
    final Label lblFile = new Label();
    Button pilih = new Button();
    Button play = new Button();
    Button pause = new Button();
    Button stop = new Button();

    final VBox vb = new VBox();
    final Slider s = new Slider();
   
    HBox hb = new HBox();

    MediaPlayer mp;
    MediaView mv;
  
    @Override
    public void start(final Stage primaryStage) throws Exception {
        final StackPane root = new StackPane();
        primaryStage.setTitle("VideoPlayerEX");
       
        pilih.setText("Pilih File");
        play.setText("Play");
        pause.setText("Pause");
        stop.setText("Stop");
            

        Media m = new Media(fileChooser());
        mp = new MediaPlayer(m);
        mv = new MediaView(mp);
        mp.play();
       
        pilih.setOnAction(new EventHandler<ActionEvent>() {
           
            @Override
            public void handle(ActionEvent event) {

                mp.dispose();
                mp = new MediaPlayer(new Media(fileChooser()));
                mv.setMediaPlayer(mp);
                mp.play();
               
                mp.setOnReady(new Runnable() {

                    @Override
                    public void run() {
                        onReady(primaryStage);
                    }
                });
       
                mp.currentTimeProperty().addListener(new ChangeListener<Duration>() {

                    @Override
                    public void changed(ObservableValue<? extends Duration> ov, Duration t, Duration t1) {
                        s.setValue(t1.toSeconds());
                    }
                });
               

            }
        });
     
        mp.setOnReady(new Runnable() {

            @Override
            public void run() {
                onReady(primaryStage);
            }
        });
       
        mp.currentTimeProperty().addListener(new ChangeListener<Duration>() {

            @Override
            public void changed(ObservableValue<? extends Duration> ov, Duration t, Duration t1) {
                s.setValue(t1.toSeconds());
            }
        });
       
        play.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent t) {
                mp.play();
            }
        });
       
       
        pause.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent t) {
                mp.pause();
            }
        });
     
       
        stop.setOnAction(new EventHandler<ActionEvent>() {

             @Override
             public void handle(ActionEvent t) {
                 mp.stop();
             }
         });
    
       
        s.setOnMouseClicked(new EventHandler<MouseEvent>() {

            @Override
            public void handle(MouseEvent t) {
                mp.seek(Duration.seconds(s.getValue()));
            }
        }); 
       
        s.setMin(0.0);
        s.setValue(0.0);
        s.setMax(mp.getTotalDuration().toSeconds());

        hb.getChildren().add(pilih);
        hb.getChildren().add(play);
        hb.getChildren().add(pause);
        hb.getChildren().add(stop);
       
        vb.getChildren().add(s);
        vb.getChildren().add(lblFile);
        vb.getChildren().add(hb);
       
        root.getChildren().add(mv);
        root.getChildren().add(vb);
       
        primaryStage.setScene(new Scene(root, 600, 480));
        primaryStage.show();
    }

    private void onReady(Stage stage) {
        int w = mp.getMedia().getWidth();
        int h = mp.getMedia().getHeight();

        stage.setMinWidth(w);
        stage.setMinHeight(h);

        vb.setMinSize(w-50, 500);
        vb.setTranslateY(h+30);
        s.setMin(0.0);
        s.setValue(0.0);
        s.setMax(mp.getTotalDuration().toSeconds());
    }
   
    private String fileChooser() {
        FileChooser fileChooser = new FileChooser();

        FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("MP4 Files (*.mp4)", "*.MP4");
        fileChooser.getExtensionFilters().add(extFilter);

        file = fileChooser.showOpenDialog(null);

        String path = "file://" +file.toURI().getPath().replaceAll(" ", "%20");
        lblFile.setText(path);
       
        return path;

    }
    public static void main(String[] args) {
        launch(args);
    }
   
}

7. Kemudian kita jalanin deh aplikasinya, klik kanan Project >> Run.

Saat pertama dijalankan, aplikasi akan menampilkan Filechooser, yaitu kita disuruh milih file video, sebelumnya untuk video ane set hanya bisa video dengan format .mp4.

kalo udah milih video, klik Open. 



Hasilnya sebagai berikut :



Projectnya bisa di download di sini.
Sekian tutorial singkat dan sederhana dari saya.
Semoga bermanfaat.

Monday, 2 December 2013

Java: Membuat Aplikasi Berada di Tengah Layar

Pada kesempatan kali ini saya akan menjelaskan tutorial java sederhana, yaitu bagaimana cara membuat aplikasi desktop berada di tengah layar monitor ketika di-run.

Langsung aja, buka Netbeans IDE (atau editor lainnya).


Buat project baru, beri nama FrameExample (atau apapun namanya).

Hilangkan centang pada bagian Create Main Class. Klik Finish.


Kemudian pada bagian project => Source Packages, klik kanan, buat package baru, saya memberi nama packagenya com.example.ergun.frameexample.

Kemudian di dalam package yang sudah dibuat tadi, buat JFrame baru, beri nama FrmMain.


Kemudian run project. 



Saat aplikasi dijalankan, secara default aplikasi akan berada di bagian kiri atas monitor. Untuk mengeset agar aplikasi berada di tengah layar, tambahkan code berikut di bawah method initComponents() pada bagian constructor FrmMain:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int width = (dim.width - getSize().width) / 2;
int height = (dim.height - getSize().height) / 2;
setLocation(width, height);
Kemudian run project, hasilnya sebagai berikut:


Aplikasi sudah berada di tengah layar, mudahkan? :D

Sekian tutorial sederhana dari saya, semoga bermanfaat.

Friday, 29 November 2013

Tingkatan Hacker

Banyak dari kita beranggapan bahwa hacker itu jahat, hacker suka membobol ATM, membobol komputer, membobol security, mencuri password atau pun bertindak yang merugikan orang lain. Sekarang anggapan seperti itu sebaiknya dihilangkan karena hacker itu tidak sejahat yang dibayangkan, bahkan tidak jahat sama sekali.

Hacker adalah sekumpulan atau beberapa kelompok yang memiliki tujuan untuk mengembangkan ilmu pengetahuan dan sharing informasi bebas tanpa batas dan gratis. Hacker adalah seseorang yang ingin mengetahui secara mendalam mengenai kerja suatu sistem, komputer, atau jaringan komputer. Mereka terdiri dari para programmer yang ahli jaringan dan karena mereka jugalah internet tercipta sehingga kita bisa menikmatinya dan membuat kita lebih mudah mencari ilmu, sharing pengetahuan, dan lain-lain. Internet sendiri diciptakan lewat pengembangan sistem operasi UNIX.

Istilah hacker lahir sekitar tahun 1959 dari MIT(Massacusetts Institute of Technology), sebuah universitas di Amerika yang terdiri dari orang-orang cerdas namun cenderung tidak mempercayai adanya Tuhan (Atheis). Saat itulah semua berawal, dari sebuah ruangan baru, EAM room pada Building 26 MIT, sebuah tempat yang merupakan nenek moyang dari dunia baru yang kini kita kenal, tempat nenek moyang sebuah mesin yang kini kita sebut sebagai "komputer", mesin yang mampu membawa kita menuju kelebih-baikan dengan kebebasan informasi, dunia para hacker sejati.

Sehebat apapun hacker tidak akan di hargai oleh hacker lain jika dirinya hanya mendapatkan ilmu dari hacker lain tanpa mau berusaha sendiri mencari ilmu. Para hacker selalu bekerjasama secara suka rela menyelesaikan masalah dan membangun sesuatu. Mereka selalu berbagi informasi, memberi jawaban serta berlomba-lomba untuk berbuat yang terbaik agar dihormati di lingkungannya. Mereka tidak pernah berhenti belajar untuk menjadi ahli dan sangat anti untuk melakukan sesuatu berulang-ulang dan membosankan. Mereka berpedoman pada kata-kata bijak : “Untuk mengikuti jalan – pandanglah sang ahli – ikuti sang ahli – berjalan bersama sang ahli – kenali sang ahli – jadilah sang ahli.”

Untuk menjadi seorang hacker anda harus menguasai beberapa bahasa pemrograman dan tentu saja sikap-sikap yang bisa membuat anda diterima di lingkungan para hacker. Biasanya calon hacker memulai dengan belajar bahasa Python karena bahasa ini tergolong bahasa pemrograman yang termudah. Setelah itu anda juga harus menguasai Java yang sedikit lebih sulit akan tetapi menghasilkan kode yang lebih cepat dari Python, C, C++ yang menjadi inti dari UNIX, dan Perl serta LISP untuk tingkat lanjut.

Tingkatan-Tingkatan Dalam Hacker

Lamer 
Mereka adalah orang tanpa pengalaman dan pengetahuan yang ingin menjadi hacker(wanna-be hacker). Mereka biasanya membaca atau mendengar tentang hacker dan ingin seperti itu. Penggunaan komputer mereka terutama untuk main game, IRC, tukar menukar software pirate, mencuri kartu kredit. Biasanya melakukan hacking menggunakan software trojan, nuke dan DoS. Biasanya menyombongkan diri melalui IRC channel dan sebagainya. Karena banyak kekurangannya untuk mencapai elite, dalam perkembangannya mereka hanya akan sampai level developed kiddie atau script kiddie saja.

Script Kiddie 
Seperti developed kiddie, Script Kiddie biasanya melakukan aktivitas di atas. Seperti juga lamer, mereka hanya mempunyai pengetahuan teknis networking yang sangat minimal. Biasanya tidak lepas dari GUI. Hacking dilakukan menggunakan trojan untuk menakuti dan menyusahkan hidup sebagian pengguna internet.

Developed Kiddie
Sebutan ini terutama karena umur kelompok ini masih muda (ABG) dan masih sekolah. Mereka membaca tentang metode hacking dan caranya di berbagai kesempatan. Mereka mencoba berbagai sistem sampai akhirnya berhasil dan memproklamirkan kemenangan ke lainnya. Umumnya mereka masih menggunakan Grafik User Interface (GUI) & baru belajar basic dari UNIX, tanpa mampu menemukan lubang kelemahan baru di sistem operasi.

Semi Elite
Hacker ini biasanya lebih muda daripada Elite. Mereka juga mempunyai kemampuan dan pengetahuan luas tentang komputer. Mereka mengerti tentang sistem operasi (termasuk lubangnya). Biasanya dilengkapi dengan sejumlah kecil program cukup untuk mengubah program eksploit. Banyak serangan yang dipublikasi dilakukan oleh hacker kaliber ini, sialnya oleh para Elite mereka sering kali dikategorikan lamer.

Elite 
Dikenal sebagai 3l33t, 3l337, 31337 atau kombinasi dari itu; merupakan ujung tombak industri keamanan jaringan. Mereka sangat mengerti sistem operasi luar dalam, sanggup mengkonfigurasi dan menyambungkan jaringan secara global. Sanggup melakukan pemrogramman setiap harinya. Sebuah anugrah yang sangat alami, mereka biasanya efisien dan terampil menggunakan pengetahuannya dengan tepat. Mereka seperti siluman dapat memasuki sistem tanpa diketahui, walaupun mereka tidak akan menghancurkan data-data karena mereka selalu mengikuti peraturan yang ada.

Wednesday, 27 November 2013

Linux: Menginstal Linux Ubuntu 13.04 di VirtualBox

Tutorial kali ini adalah untuk memenuhi tugas Maintenance.
Pada kesempatan kali ini saya akan menjelaskan cara instalasi OS Linux Ubuntu 13.04 Raring Ringtail di VirtualBox. Langsung aja, pertama-tama buka program Oracle VM VirtualBox.


Kemudian klik New. Akan muncul dialog Create New Virtual Machine.


Klik Next, akan masuk ke menu VM Name and OS Type, masukkan nama Virtual Machine yang akan kita buat dan masukkan tipe OS dan versi yang akan digunakan, disini saya memberi nama Virtual Machine-nya denga nama TI1220214_ErikGunawan dan tipe OS Linux versi Ubuntu.


Klik Next, menu selanjutnya adalah Memory, masukkan berapa banyak memori yang akan digunakan pada Virtual Box. Disini saya mengalokasikan memori untuk Virtual Machine sebesar 1024 MB.


Klik Next, menu selanjutnya adalah Virtual Hard Disk¸ jika belum pernah membuat virtual hard disk, kita pilih Create new hard disk.


Klik Next, akan muncul wizard baru, yaitu Create New Virtual Disk.


Klik Next, kita akan masuk ke menu Hard Disk Storage Type. Secara default Storage Type yang dipilih adalah Dinamically expanding storage.


Klik Next, menu selanjutnya adalah Virtual Disk Location and Size. Atur lokasi dimana virtual disk akan disimpan dan ukuran virtual disk tersebut. Disini saya menempatkan lokasi virtual disk di E:\VirtualBox\Linux.vdi, Linux.vdi adalah nama dari virtual disk yang kita buat, Anda bisa mengubah nama virtual disknya sesuai keinginan. Kemudian untuk ukuran virtual disk saya beri ukuran sebesar 8 GB.


Klik Next, selanjutnya adalah menu Summary, yaitu ringkasan dari langkah-langkah yang telah kita lewati tadi.


Klik Finish. Kita akan kembali ke wizard Create New Virtual Machine. Menu ini adalah Summary, yaitu ringkasan dari rangkaian proses yang telah kita lewati.


Klik Finish. Selanjutnya kita akan kembali ke tampilan awal Virtual Box. Akan muncul virtual machine yang telah kita buat. Untuk menjalankan virtual machine, klik Start.


 
Virtual Machine akan muncul. Kemudian saat pertama kali dijalankan, akan muncul First Run Wizard.


Klik Next, akan masuk ke menu Select Installation Media. Masukkan Disk Image sistem operasi. Format filenya dapat berupa *.dmg, *.iso atau *.cdr. Disini saya memasukkan file ISO Linux Ubuntu 13.04.


Klik Next, akan masuk ke menu Summary, yaitu ringkasan dari proses sebelumnya.


Klik Finish. Virtual Machine akan booting dengan OS yang telah kita pilih.


Kemudian akan masuk ke proses instalasi Ubuntu. Langkah pertama adalah pemilihan bahasa dan pilihan untuk Try Ubuntu, yaitu mencoba Ubuntu tanpa menginstal ke hard disk, atau Install Ubuntu, yaitu menginstal Ubuntu. Kita pilih bahasa English (atau bahasa lainnya yang Anda inginkan) dan Install Ubuntu.


Langkah selanjutnya adalah Preparing to Install Ubuntu. Jika tidak terhubung ke internet, uncheck Download updates while installing. Klik Continue.


Langkah selanjutnya adalah Installation type, pilihan default adalah Erase disk and install Ubuntu. Klik Install Now.


Langkah selanjutnya adalah Where are you?, yaitu memilih lokasi Anda. Klik Continue.


Langkah selanjutnya adalah Keyboard layout, yaitu pengaturan bahasa pada keyboard. Langsung aja klik Continue.


Langkah selanjutnya adalah Who are you?. Pada langkah ini Anda diminta untuk mengisi username, computer name dan password. Klik Continue.


Selanjutnya sistem akan mulai menginstal. Tunggu proses instal selesai.



Setelah instalasi selesai, akan muncul dialog Installation Complete. Kita akan diminta untuk merestart sistem. Klik Restart Now.


Setelah booting, kita akan masuk ke halaman Login, silahkan masukkan password yang sudah Anda masukkan pada proses instalasi sebelumnya.


Ketika Login sukses, kita akan masuk ke Halaman awal Ubuntu. Selamat, Anda telah berhasil menginstal Ubuntu :D.


Mudah kan?
Sekian tutorial saya kali ini, kurang lebihnya saya mohon maaf. Jangan lupa tinggalkan komentar dan saran.
Semoga bermanfaat.

Wednesday, 22 May 2013

C++: Program Konversi Bilangan - Desimal Biner Oktal Heksadesimal (Final Part)

Program ini adalah program final yang saya buat untuk memenuhi ujian praktek UAS pada mata kuliah Algoritma Pemrograman. Ini adalah lanjutan dari tutorial saya sebelumnya, yaitu C++: Program Konversi Bilangan - Desimal Biner Oktal Heksadesimal (Part 1) dan C++: Program Konversi Bilangan - Desimal Biner Oktal Heksadesimal (Part 2).

Pada tutorial sebelumnya terdapat banyak kekurangan, misalnya belum adanya pengkondisian bilangan yang diinputkan. Nah pada tutorial kali ini programnya sudah dioptimalisasi, jadi bilangan yang diinputkan harus sesuai dengan tipe bilangan tersebut. Misal bilangan desimal hanya bisa menginputkan angka 0-9, bilangan biner hanya bisa menginputkan bilangan 0-1, Oktal hanya bisa menginputkan bilangan 0-7, dan heksadesimal hanya bisa menginputkan bilangan 0-9 dan A-F, selain bilangan tersebut akan muncul pesan error. :D

1. Langsung aja, buka Microsoft Visual Studio (karena saya menggunakan Microsoft Visual Studio, tapi teman-teman bisa menggunakan code editor lain seperti Borland C++).
2. Buat project baru, saya beri nama projectnya konversi_bilangan_final, pilih WIN32 Console Application.
3. Masukkan code berikut :
// konversi_bilangan_final.cpp : Defines the entry point for the console application.
// Developer : Erik Gunawan
// Nickname  : EXz

#include "stdafx.h"
#include <iostream>

using namespace std;

char bil[100];
int hasil[100];
int sisa = 0;
int x = 0;

void header() {
 cout << "Program Konversi Bilangan" << endl;
 cout << "=========================================" << endl;
 cout << "A = Desimal ke Biner, Oktal, Heksadesimal" << endl;
 cout << "B = Biner ke Oktal, Desimal, Heksadesimal" << endl;
 cout << "C = Oktal ke Biner, Desimal, Heksadesimal" << endl;
 cout << "D = Heksadesimal ke Biner, Oktal, Desimal" << endl;
 cout << "=========================================" << endl;
 cout << endl;
}

int fromDecimal(int desimal, int kode) {
 for (int i=desimal; i>0; i/=kode) {
  sisa = i% kode;
  x += 1;
  hasil[x] = sisa;
 }

 switch (kode) {
  case 2:  cout << "Hasil biner        : "; break;
  case 8:  cout << "Hasil oktal        : "; break;
  case 10: cout << "Hasil desimal      : "; break;
  case 16: cout << "Hasil heksadesimal : "; break;
  default: cout << endl; break;
 }

 while (x) {
  if (kode==2 || kode==8 || kode==10) {
   cout << hasil[x];
  }
  else if (kode==16) {
   switch (hasil[x]) {
    case 10: cout << 'A'; break;
    case 11: cout << 'B'; break;
    case 12: cout << 'C'; break;
    case 13: cout << 'D'; break;
    case 14: cout << 'E'; break;
    case 15: cout << 'F'; break;
    default: cout << hasil[x]; break;
   }
  }
  x -= 1;
 }
 cout << endl;
 return 0;
}

void toDecimal(int kode) {
 int pangkat = 1;
 int hasil_desimal = 0;
 int desimal = 0;
 int index = 0;
 int error = 0;
 int a, b, c, length;

 length = strlen(bil);
 for (int i=length-1; i>=0; i--) {
  a = bil[index];
  switch (a) {
   case 'A':
   case 'B':
   case 'C':
   case 'D':
   case 'E':
   case 'F': b = a-55; break;
   default:  b = a-48; break;
  }

  c = i;
  while (c>=0) {
   desimal = pangkat*b;
   pangkat *= kode;
   c -= 1;
  }

  pangkat = 1;
  hasil_desimal += desimal;
  index += 1;

  if (kode==2) {
   if (b>1 || b<0) {
    error += 1;
   }
  }
  else if (kode==8) {
   if (b>7 || b<0) {
    error += 1;
   }
  }
  else if (kode==10) {
   if (b>9 || b<0) {
    error += 1;
   }
  }
  else if (kode==16) {
   if (b>15 || b<0) {
    error += 1;
   }
  }
 }

 if (error>0) {
  cout << "Bilangan yang Anda masukkan tidak valid!!" << endl;
 }
 else {
  if (kode==2) {
   fromDecimal(hasil_desimal, 8);
   fromDecimal(hasil_desimal, 10);
   fromDecimal(hasil_desimal, 16);
  }
  else if (kode==8) {
   fromDecimal(hasil_desimal, 2);
   fromDecimal(hasil_desimal, 10);
   fromDecimal(hasil_desimal, 16);
  }
  else if (kode==10) {
   fromDecimal(hasil_desimal, 2);
   fromDecimal(hasil_desimal, 8);
   fromDecimal(hasil_desimal, 16);
  }
  else if (kode==16) {
   fromDecimal(hasil_desimal, 2);
   fromDecimal(hasil_desimal, 8);
   fromDecimal(hasil_desimal, 10);
  }
 }
}

void binaryToAll() {
 cout << "Masukkan bilangan biner        : "; cin >> bil;
 toDecimal(2);
}

void octalToAll() {
 cout << "Masukkan bilangan oktal        : "; cin >> bil;
 toDecimal(8);
}

void decimalToAll() {
 cout << "Masukkan bilangan desimal      : "; cin >> bil;
 toDecimal(10);
}

void hexadecimalToAll() {
 cout << "Masukkan bilangan heksadesimal : "; cin >> bil;
 toDecimal(16);
}

void pilihan_salah() {
 system("cls");
 cout << "Kode yang Anda masukkan salah!!" << endl;
 cout << endl;
}

void pilihan() {
 char pilih, coba_lagi;

 pilih:
 header();
 cout << "Masukkan pilihan : "; cin >> pilih;
 cout << endl;

 if (pilih=='A' || pilih=='a') {
  decimalToAll();
 }
 else if (pilih=='B' || pilih=='b') {
  binaryToAll();
 }
 else if (pilih=='C' || pilih=='c') {
  octalToAll();
 }
 else if (pilih=='D' || pilih=='d') {
  hexadecimalToAll();
 }
 else {
  pilihan_salah();
  goto pilih;
 }

 cout << endl;

 coba_lagi:
 cout << "Ingin coba lagi (Y/N) ? "; cin >> coba_lagi;
 cout << endl;

 if (coba_lagi=='Y' || coba_lagi=='y') {
  system("cls");
  goto pilih;
 }
 else if (coba_lagi=='N' || coba_lagi=='n') {
  pilihan_salah();
  goto coba_lagi;
 }
}

void main(){
 pilihan();
}

4. Run file, hasilnya akan seperti ini :


 5. Masukkan bilangan yang ingin dicari.





6. Jika bilangan yang diinputkan tidak valid :





Untuk download contoh project di atas, klik disini atau konversi_bilangan_final.
Ditunggu kritik saran pertanyaan dan komentarnya. :D

Semoga bermanfaat.