Failure is an Options!

Keep Strugle for what you want to achieve

The Future is in your hand,

Future bright only if you have a plan and action to making happen.

The Maturity and Wisely!

Success people always have positive vibe with maturity of thinking and wisely attitude in living

The time is limited

Never waste your time, Because time is precious like a life and money

Jumat, 08 November 2019

Menjalankan Job Pentaho pada Windows Server (background service)

Hi, selamat datang...
Terima kasih sudah berkunjung ke blogku. Silahkan anda komen dibawah ini bila anda menyukai konten yang di tulis.Terima kasih,.
Saat ini aku sedang ada pekerjaan untuk melakukan integrasi data antar sistem dan database. Metode tersebut bisa disebut juga sebagai metode transformasi data atau lebih dikenal oleh para profesional yaitu konsep ETL (ekstrak, transformation, and load) data.

Baiklah langsung saja pada intinya, yaitu aku  disini akan mendokumentasikan cara menjalankan file job transformasi yang berekstensi ".kjb" menggunakan background service yang dimiliki windows via command line. Apabila anda biasa dengan linux, silahkan cari referensinya terkait linux untuk menjalankannya, namun pada artikel ini saya hanya membahas untuk windows maka hasilnya adalah sebagai berikut:

PATH / PATERN :

Drive x:\directory of pentaho>kitchen.bat /file:x:\directory of pentaho\samples\yourdirectory\yourfile.kjb /level:Basic

Example :
D:\data-integration>kitchen.bat /file:D:\PENTAHO\pentahojobsNtrans_1\jobs\vws_sync_job_2.kjb /level:Basic

Untuk informasi lebih detailnya, silahkan cek dokumentasinya pada link berikut ini!

Rabu, 07 Agustus 2019

CARA IMPORT / RESTORE MySQL DB ke WAMP SERVER

Restore database MySQL di WampServer

Jika Anda menjalankan WampServer di komputer lokal Anda, mungkin agak sulit untuk mengembalikan database MySQL. Anda perlu melakukannya dari baris perintah Windows (DOS prompt), daripada baris perintah konsol MySQL. Perintah pemulihan MySQL sebenarnya sedikit berbeda dari normal dan Anda harus memastikan bahwa Anda berada di direktori yang benar terlebih dahulu.

Berikut langkah-langkahnya (menggunakan WampServer 2.0):
Pergi ke baris perintah Windows dengan pergi ke Mulai -> Jalankan dan ketikkan cmd.
Anda perlu mengubah direktori ke direktori bin MySQL. Pada versi saya, direktori ini adalah 
c: \ wamp \ bin \ mysql \ mysql4.1.22 \ bin.
Oleh karena itu, perintah untuk berubah ke direktori ini adalah:
cd wamp \ bin \ mysql \ mysql4.1.22 \ bin
Masukkan dump MySQL (file SQL) ke direktori di atas
Buat database baru di phpmyAdmin (atau di baris perintah)
Perintah restore sebenarnya sedikit berbeda dengan normal. 
Ketik Perintahnya adalah:
mysql -u root -p databasename < filename.sql
Perhatikan bahwa kata mysql.exe bukan mysql normal.

Ketika ditanya kata sandi, tekan saja enter. Tidak ada kata sandi yang dikaitkan dengan database yang Anda buat (kecuali Anda lebih suka memilikinya. Tetapi karena bersifat lokal, tidak perlu)
Itu dia!

Senin, 24 Juni 2019

Setting Visual Studio Code Highlighter - Penanda Open dan Closing Tag HTML

Hi sobat, pada kesempatan kali ini saya ingin membagikan informasi terkait aplikasi text code editor yang mulai banyak dikenal dan populer di lingkungan para pengembang aplikasi / software (programmer). Berikut ini aplikasi yang saya gunakan yaitu Visual Studio Code (Code Editor). Aplikasi ini sangat menarik, karena dengan kapasitasnya yang kecil dan ringan digunakan, visual studio code juga menawarkan banyak fitur library ekstension untuk kemudahan dan kenyamanan bekerja para coder :


Langkah - langlah untuk melakukan pengaturan diantaranya berikut ini:

1. Buka aplikasi visual studio code sobat coder
2. Pilih menu file => preferences => extension => Pada kotak pencarian di left side bar, ketik Highlight Matching Tag => install, setelah instalasi selesai kemudian lakukan pengaturan di file "settings.json"
3. Pilih menu file => preferences => extension => pilih highlight matching tag => pilih bagian "Beginning style", kemudian klik "Edit in settings.json"


Berikut isi script json pada file settings.json :
{
    "files.autoSaveDelay": 998,
    "update.mode": "manual",
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection":     "automaticallyOverrodeDefaultValue",
    "java.errors.incompleteClasspath.severity": "ignore",
    "php.validate.executablePath": "C:\\xampp\\php\\php.exe",
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "editor.wordWrap": "on",
    "window.zoomLevel": 0,
    "workbench.colorTheme": "Dracula Soft",
}

lalu ubahlah dengan menambahkan script json seperti berikut ini:

"highlight-matching-tag.styles": {
        "opening": {
         "name": {   
        "backgroundColor": "rgba(63, 191, 63, 0.20)",
        "underline": "yellow",
        "highlight": "rgba(255,255,0,0.2)"
        }    
      }
    },
        "editor.occurrencesHighlight": false



Hasilnya jadi seperti ini jika digabung:

{
"files.autoSaveDelay": 998,
"update.mode": "manual",
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"java.errors.incompleteClasspath.severity": "ignore",
"php.validate.executablePath": "C:\\xampp\\php\\php.exe",
"files.exclude": {
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true
},
"editor.wordWrap": "on",
"window.zoomLevel": 0,
"workbench.colorTheme": "Dracula Soft",

"highlight-matching-tag.styles": {
"opening": {
"name": {
"backgroundColor": "rgba(63, 191, 63, 0.20)",
"underline": "yellow",
"highlight": "rgba(255,255,0,0.2)"
}
}
},
"editor.occurrencesHighlight": false

}


Result in code editor , Taraaa....
Please give  your feedback below, thank you !






Selasa, 15 Agustus 2017

Cara push project ke bitbucket

HOW TO PUSH  / UPLOAD FILE TO REPO :
1.Go to web bitbucket login/register, create repo, isi nama dan deskripsi file, klik ok.
2.open direktori with GIT BASH (right klik on project folder choose git bash).
Then type this..
3. git init
4.git add -A
5.git config --global user.email testuser@gmail.com
6.git config --global user.name testuser
7.git commit -m "Nama VersiProject"
8.git status  (to check status) then
 copy url remote repository :
9.git remote set-url origin https://adhieres@bitbucket.org/accountname/projectname.git
OR git remote add origin https://github.com/accountname/test.git
10.git push -u origin master
Please wait, Well done!

Cloning Repositori
git clone https://github.com/nama akun/nama repo.git

Menambahkan File & Push File di Github
Untuk menambahkan beberapa file ke repo yang telah dibuat ketikkan

cd direktori/ //Masuk ke direktori yang sudah di clone tadi
git add nama file atau * //tanda bintang untuk beberapa file sekaligus
git commit -m "first commit" //dalam tanda petik tulisan pesan
git push //masukkan nama pengguna dan kata sandi

Jumat, 15 Januari 2016

Apa itu ESP8266MOD WIFI MODULE?

Hello... sudah lama sekali rasanya tidak blogging untuk sharing informasi seputar teknologi. 
Aku pikir setelah berkecimpung di dunia riset sekian lama ini, alangkah baiknya semua informasi yang sudah di dapat  itu dicatat , agar kelak tidak lupa atau bisa mudah dicari lagi apabila kita memerlukannya sebagai bahan referensi belajar. 

Sebelumnya, Aku ucapkan terima kasih sudah berkunjung ke blogku yang lusuh ini atau sudah lama tidak terawat, karena saking padetnya waktu untuk urusan kerjaan dan kegiatan penelitian/riset yang aku lakukan bersama team. Baiklah langsung aja ke topik yang akan dibahas, yaitu mengenai informasi tentang Modul ESP8266 dan FTDI basic breakout, beserta contoh cara penggunaanya.

Pada kasus ini, aku bersama team sedang ingin melakukan riset tentang pengembangan teknologi internet of thing khususnya dibidang perangkat smarthome dan smartvehicle security dengan memanfaatkan modul atau komponen yang sederhana dengan kemampuan yang tidak kalah canggih dengan pesaingnya untuk jenis wifi modul/mikrokontroler dan harga yang relatif terjangkau agar dapat meminimalisir biaya pengeluaran penelitian dan pembauatan . 

Berikut ini adalah penjelasan modul ESP8266MOD :

1. ESP8266 / ESP8266MOD versi terbarunya merupakan modul wireless yang luar biasa, karena dapat digunakan pada banyak mikrokontorler untuk konek ke jaringan wireless dengan daya jangkau 802.11b/g/n. Modul ini dapat memberikan kemampuan untuk request data dari server manapun via koneksi WIFI.

Untuk dapat testing modul ini kita perlu mengetikan perintah khusus pada serial monitor arduino SDK yaitu dengan mengakses perintah "AT" pada serial command/monitor, agar dapat memastikan apakah perangkat terbaca atau tidak. Untuk lebih spesifik, kita bisa mencari referensi via google untuk mencari tahu bagaimana cara menggunakan perintah AT-command untuk mengakses ESP8266MOD pada IDE Arduino atau SDK Espressif Mikorcontroler.

Pada kasus ini aku menggunakan modul ESP8266MOD di arduino SDK, perbedaanya dengan ESP versi yang lain adalah fungsi dari header male adalah versi ini memiliki pin input output yang lebih banyak. Selain itu dengan bentuk smd yang lebih kecil, versi ini sangat cocok digunakan dalam produk akhir anda. berbeda dengan esp8266 header male versi (ESP01) yang lebih cocok untuk prototyping. Adapun sebuah tuas (switch) untuk mode Prog/Run. 

*Note:
1. Geser switch /tuas ke mode Prog, apabila kita akan melakukan coding dan compiling/upload program. 

2. Geser switch /tuas ke mode Run, apabila kita sudah mengupload program ke perangkat ESP8266MOD.

3.Modul ini beroperasi di arus 3.3V saja. Jika perangkat interfacing menggunakan lebih dari atau sama dengan 5V, jadi harus dibantu dengan memberi arus via perangkat lain yang terpisah misal dapat melalui arduino atau power supply yang lain.  Jangan pernah sekali-kali memaksa diberi 5V karena akan menghanguskan chip IC nya.


Gbr1-  ESP8266MOD 

Gbr 2 - ESP8266MOD
Spesifikasi module ESP8266 MOD:

SKU: HCMODU007
Module: ESP-12
Device: ESP8266MOD
Frequency: (ISM): 2.4GHz
Power: +25dBm
Supported Wifi: 802.11 b/g/n
Operating voltage: 3.3V
Min Current (Sleep): 10mA
Max current (connected to 802.11b network): 215mA

Keterangan Pin :
TXD = Transmitter data serial, pengirim data serial
RXD = Receiver data serial, penerima data serial
VCC  =  3.3V
GND  =  0V
CH_PD  = Power down pin. Konek ke 3.3V untuk operasi normal
RST = Reset
ADC = Analog digital converter, untuk komunikasi serial analog
Selebihnya Pin GPI/O = Pin untuk input atau output

Intruksi ATCommand :
Klik untuk zoom in
Contoh penanganan request website:
Buka aplikasi arduino SDK cari dan buka serial terminal connection untuk modul testing modul dengan penyetelan baudrate  9600 BAUD.

Reset modul untuk mengetahui versi modul tersebut, ketik perintah berikut pada serial terminal:
AT+RST

Misal, Respon:
ü! ¤§ æÇ!Ã¿1ä)}ô Êõ
[Vendor:www.ai-thinker.com Version:0.9.2.4]

Set mode untuk client:
AT+CWMODE=1

Respon:
change

Perintah untuk cek list jaringan Wifi yang tersedia:
AT+CWLAP

Misal, Respon:
+CWLAP:(4,"dcoda",-86,"9c:97:26:ce:b3:d9",1)
+CWLAP:(4,"HCWireless",-53,"00:24:a5:bd:10:d4",8)

OK


Ketik perintah berikut untuk konek ke akses poin:
AT+CWJAP="YOURSSID","YOURPASSWORD"

Misal, jika berjasil Respon:

OK

Membuka koneksi TCP untuk ke website:
AT+CIPSTART="TCP","google.co.uk",80

Respon:
OK
Linked

Request sebuah halaman (number of bytes includes a CR & LF):
AT+CIPSEND=30

Respon:
>

kodei ini  '>' menandakan bahwa modul sekarang tidak mengharapkan  30 bytes  data termasuk CF & LF

Kirim sebuah data  GET request untuk halaman:
GET http://www.google.co.uk/

Modul akan mengembalikan hasil dari request halaman tersebut yang diikuti dengan respon OK.

----------------------------------------------------------------------------------------------------
Contoh dasar untuk akses server:
Buka serial terminal connection untuk testin modul denan penyetelan a baudrate 9600 BAUD.

Reset modul untuk mengetahui versi modul tersebut, ketik perintah berikut pada serial terminal:
AT+RST

Setel mode untuk kedua client dan access point:
AT+CWMODE= Pin pada ESP?

Modul (Koneksi Wifi) seharusnya sudah mulai terdeteksi dan terlihat sekarang untuk beberapa perangkat seperti komputer/tablet/smartphone dengan default SSID dari ESP / "ESP_9D66BF" sebagai open network. Konekan perangkat kita ke jaringan wifi client ini.

Ketik perintah dibawah untuk memberikan akses multiple connections:
AT+CIPMUX= Pin pada ESP?

ketika perintah selanjutnya untuk, Aktifkan sebagai server untuk menerima koneksi dari port 80:
AT+CIPSERVER=1,80

Berikut adalah Default address (gateway) dari modul akan terlihat seperti berikut  192.168.4.1
Buka browser pada Client (Pc/Laptop) dan ketik alamat ip default yang tadi.  Sekarang kita seharusnya sudah bisa melihat request dari browser yang muncul di terminal window, untuk mengirim perintah dasar dan respon:

Beritahu modul bahwa kita mengirim data sebesar 26 bytes (termasuk CR+LF)
AT+CIPSEND=0,26

Modul akan merespon dengan balasan  '>'

Ketik perintah berikut, untuk mengirim text hello world kepada browser client:
<body>Hello World</body>

Jika tidak ada yang salah pada proses sebelumnya, seharusnya text hello world sekarang muncul di browser, karena browser pc kita yang bertindak sebagai client.

Ketik perintah berikut, untuk mematikan koneksi (Disconnect)
AT+CIPCLOSE=0

Okay, sekian dulu ya.Mohon maaf apabila ada kesalahan dalam penulisan informasi diatas.
Pada artikel selanjutnya aku akan membahas FTDI module basic breakout sebagai perangkat pendukung dari modul ESP8266/ ESP8266MOD ini. Semoga aku bisa segera posting lanjutannya.

Jika anda suka artikel ini. Silakan berikan pertanyaan, kritik atau komentar yang membangun.

Goodluck!














Rabu, 21 Januari 2015

ISTILAH UMUM ATAU FUNGSI PADA PEMROGRAMAN JAVA

1.System.out.print(""); //Fungsi output/keluaran  utk mencetak hasil dari program baik itu bertipe string, nilai atau variabel.

2.Scanner input = new Scanner(System.in); //"Scanner(System.in)" adalah fungsi input/masukan di java, "input" merupakan sebuah variabel yang dapat dirubah sesuai nama inputan yang diinginkan. Namun, format penulisan inputan biasanya seperti demikian. Contoh sederhana :
//Get first input
System.out.print("Siapa Nama Anda?");
String nama = input.nextLine();

3. Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain.

4.Method merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggil melalui object.
Metode menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat serta berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.

5.Constructor merupakan method khusus yang digunakan untuk menginisialisasi objek, dan tiap class boleh memiliki lebih dari satu constructor. Perbedaan method biasa dengan constructor adalah bahwa constructor harus  memiliki nama yang sama dengan nama class-nya dan tidak memiliki nilai  kembalian. Constructor dijalankan pada saat sebuah objek diinisialisasi  (menggunakan kata new). Pada constructor juga berlaku overloading, artinya  boleh mendeklarasikan lebih dari satu constructor, asalkan memiliki parameter yang berbeda.

6.Modifier adalah sifat yang dimiliki oleh setiap atribut, method maupun class dalam java. Ada empat macam modifier yang dikenal oleh Java, yaitu private, protected, public dan default.

Wilayah AksesPublicProtectedDefaultPrivate
Kelas yang samayayayaya
Antar Kelas dalam package yang samayayayatidak
Subkelas di package yang berbedayayatidaktidak
bukan subkelas, package yang berbedayatidaktidaktidak
Beberapa modifier penting lainnya:
Static yaitu modifier yang digunakan agar suatu atribut maupun method dapat diases oleh objek atau kelas lain meski tanpa dilakukan instansiasi terhadap kelas dimana atribut maupun method itu berada, method main adalah salah satu contoh method modifier static yang sering digunakan.

Final yaitu modifier yang digunakan untuk mencegah kemungkinan modifikasi terhadap atribut maupun method, dengan modifier ini suatu atribut akan berlaku sebagai konstanta.

7.Object sebuah kelas dapat digunakan untuk membuat banyak objek, setiap objek dapat dilakukan secara berbeda oleh objek-objek lain yang menggunakannya. di butuhkan operator NEW untuk membuat objek dari suatu kelas.

Format penulisan object (instansiasi) :

NameOfClass nameOfObject = new NameOfClass([params]);

Penulisan ke-1 : 
NamaKelas NamaObjek = new NamaConstractor();
Atau
Penulisan ke-2 :
NamaKelas Namaobjek;
NamaObjek = new NamaConstractor();

Contoh, untuk membuat objek aku dari class Mahasiswa:

Mahasiswa aku = new Mahasiswa ();

Proses di atas disebut instansiasi. ketika objek selesai dibuat, objek tersebut disimpan didalam memori dan dapat diakses oleh objek-objek lain melalui nama objeknya. 

8. Import merupakan fungsi untuk memanggil atau menggunakan library (pustaka) yang ada di pemrogramman java. Contoh : import java.util.*;  fungsi "library java.util.*" tersebut untuk memanggil atau membaca fungsi input dan output di java.

9.Super adalah fungsi untuk memanggil constructor dari kelas induk. Selain fungsi tersebut, kata kunci super digunakan untuk mengakses anggota kelas (variabel maupun method) dari kelas induk.
Super untuk Memanggil Constructor Kelas Induk Constructor yang terdapat pada kelas induk dapat dipanggil dari kelas turunan menggunakan kata kunci super.






Rabu, 26 November 2014

Pengenalan Metode Pertukaran Data dengan XML dan JSON untuk Android [PART 1]

ANDROID APPLICATION DEVELOPMENT

Pengenalan Metode Pertukaran Data

Pengembangan aplikasi android pada umumnya membutuhkan data untuk ditampilkan di aplikasi tersebut. Berdasarkan informasi yang didapat dari berbagai sumber di internet, terdapat 2 metode penarikan dan pertukaran data untuk aplikasi mobile android, yaitu dengan:

1. XML (Extensible Markup Language)  merupakan metode lama atau yang pertama ada dansejak lama sampai sekarang digunakan untuk proses pertukaran data untuk berbagai aplikasi, baik itu Desktopwebsite, machine dan mobile (HP).
Karakteristik XML adalah memiliki tag-tag seperti halnya HTML, tag XML lebih bersifat bebas dalam penamaan tagnya, namun dalam penulisannya kita tetap mengikuti aturan struktur dari xml, sama seperti HTML dimana tag-tagnya sudah ditentukan aturan penulisannya oleh web_consortium.

2.JSON (Javascript Object Notation) adalah jenis metode baru yang digunakan dalam proses penarikan dan pertukaran data untuk sebuah aplikasi, baik itu Desktopwebsite, machine dan mobile (HP)
Karakteristik JSON yaitu penulisannya hampir menyerupai javascript, namun sedikit berbeda fungsinya. JSON metode yang dapat digunakan untuk melakukan pertukaran data, terdapat perbedaan antara JSON dengan XML. JSON tidak memiliki atau menggunakan tag dalam penulisannya, sehingga dapat lebih ekonomis dan menghemat memori. Sedangkan, XML semakin banyak data yang kita masukan atau tulis, semakin banyak juga tag yang digunakan, hal ini dapat memakan memori file lebih besar dibandingkan dengan file JSON. Dan dewasa ini, metode penarikan data menggunakan JSON lebih banyak digunakan oleh para software developer, karena lebih mudah di maintenance dan tidak memakan memori yang besar.

Berikut adalah contoh format Code Snipet XML Basic :

Contoh lain penulisan xml, misal data categories dalam bentuk XML :


Berikut ditampilkan parsing XML ke JSON  dari file dan data yang sama :


Cara Menarik Data Menggunakan JSON untuk Android  (Untuk Sementara sampai sini dulu, selanjutnya akan dijelaskan di [PART 2]) . Thanks!




Minggu, 21 September 2014

My PHP Glossary

1) $this atau pseudo-variabel artinya variabel '$this' berfungsi untuk referensi ketika sebuah method di panggil dari suatu objek , terutama jika sebuah objek memiliki method(fungsi).

2) simbol "::" nama kerennya Scope Resolution Operator / Paamayim Nekudotayim (hebrew)
:: merupakan simbol yang digunakan sebuah class untuk memanggil fungsi atau variable static dan konstanta. Lebih jelasnya dengan simbol ini, mesti ngerti dulu apa itu static variable dan static function.

3) isset() digunakan untuk menyatakan variabel sudah diset atau tidak. Jika variabel sudah diset makan variabel akan mengembalikan nilai true, sebaliknya akan bernilai false. Jika pada variabel di atas suda ada isinya maka yang akan tampil adalah variabel yg sudah ada isinya.
dan sebaliknya jika belum ada variabel yang sama maka” tampil variable belum terisi.
jadi intinya: ”isset berfungsi untuk mengecek apakah suatu variable sudah ada isinya atau belum. Contoh: 



4) unset()merupakan kebalikan dari isset(), yaitu untuk meng-unsetvariabel, dan membebaskan memory yang sudah digunakan.

5) empty(), digunakan untuk memerikasa apakah variabel form tidak dikirim atau tidak berisi data alias kosong. berbeda denagn isset(), yang mengembalikan nilai false pada variabel yang di-unset, empty() akan mengembalikan nilai true.


Senin, 01 September 2014

Silabus Interfacing System I

Dosen : Arsyad Ramadhan Darlis S.T.,M.T

1.Pendahuluan
2.Pengenalan Arsitektur Mikrokontroler
3.Microkontroler MCS 51 & MVR
4.Komunikasi Seial & Pararel MC
5.Model Software MC MCS-51 & AVR
6.LED DRIVER
7.Motor DRIVER


CODE VISION AVR utk CODING
AVR Studio 4 untuk Download

Selasa, 12 Agustus 2014

Program Java - Menampilkan 10 Karakter Secara Acak(Random) dg Array 2 dimensi

Silahkan berikan komentar, jika bermanfaat! Terima Kasih sudah berkunjung =)



Kamis, 10 Juli 2014

Rangkuman DFD

Kata Kerja(KK) = Proses; simbol = bulat.
Kata Benda(KB) =
1.Ext.Entity ;simbol = persegi
2.Data ; simbol = setengan persegi

Contoh DFD Sistem Penjualan Pulsa:

KK:
1.Mendaftar
2.Isi Deposit
3.Transaksi

KB:
1.Member
2.Customer
3.Saldo

Tugas3:  Buat DFD Situs jualan Online!





Pengertian Flowmap?

Pengertian Flowmap adalah campuran peta dan flow chart,yang menunjukan pergerakan benda dari satu lokasi ke lokasi lain, seperti jumlah orang dalam migrasi, jumlah barang yang diperdagangkan, atau jumlah paket  dalam jaringan. Flowmap menolong analisis dan programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternaitf-alternatif lain dalam pengoprasian.

PEDOMAN-PEDOMAN DALAM MEMBUAT FLOWMAP
Bila seorang analis dan programmer akan membuat flowmap , ada beberapa petunjuk yang harus diperhatikan, sepeti :
1. Flowmap digambarkan dari halaman atas ke bawah dan kiri ke kanan.
2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat di mengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus di tentukan secara jelas.
4. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
5. Lingkup dan range dari aktifitas yang sedang di gambarkan harus di telusuri dengan hati-hati.
6.Gunakan simbol-simbol flowchart yang standar.

Simbol-simbol Flowmap

Nama Simbol dan keterangannya (keterangan lengkapnya ada pada gambar diatas) :
1.Dokumen : Menunjukan dokume inpt atau output untuk proses manual atau komputer.
2.Proses : Kegiatan proses yang di lakukan dengan komputerisasi.
3.Proses Manual : Kegiatan proses yang di lakukan dengan manual.
4.Garis alir : Menunjukan alir data dari atau ke proses.
5.Data store : Menunjukan penyimpanan arsip atau dokumen non komputer.
6.Database : Tempat penyimpanan data berbasis database
7.Data elektronik : Menunjukan laporan data elektronik.



Selasa, 10 Juni 2014

Doa khusus untuk Ujian (UAS/UAN)

Asalamualeikum, halo sobat blogger.. aku mau sekedar share tentang doa yang manjur untuk ujian, agar ujiannya di beri kelancaran oleh Allah swt, doa ini adalah pemberian oleh guru agama ku ketika aku masih duduk di sekolah menengah atas (smp) dan akan menghadapi UAS, Tryout dan UAN. Dan alhamdulilah aku mendapatkan hasil yang cukup memuaskan =) Oke, langsung saja... maaf sebelumnya berhubung gak tau cara menulis/ngetik huruf arab di keyboard berbahasa inggris atau sulit. Jadi, aku menuliskannya dalam bentuk huruf indonesia latin.

Bismilahi rahmanirahim...
(1)Arrahmaaanu ngalamal quraana khalaqol insanaa ngal lamahul bayan(na), asyamsu walqamaru bihusbanniw walhojmu watsajaru yasjudan/ni, la tukharriq bihi lisanaka litahzala bihi innaka ngalaina jam ngahu waquraanahu faidda koronahu fat ta'bii  quraanahu tsuma inna ngalaina bayanahu balhua quraanahu majidu fii lauwhimahfud/in (dibaca tiap setelah shalat wajib 7x). (2) Ilaahii ingkunta kobilta taubati wagoparta khoubati fa'akrimni bilfahmi walhifbdi khata akhfaddo kullama samii'tu wa kulama maqorotu.. minal ngilmi wal quraaan(dibaca tiap setelah shalat maghrib 11x). (3) Yaa muHhayminu(87x). (4) Yaa Halimu yaa ngalimu yaa ngaliyu yaa ngadim (di baca pada waktu ujian dan ketika soal sedang dibagikan).

Insyallah, Allah akan mempermudah, serta melancarkan kita dalam mengingat dan berfikir apa yang sudah kita pelajari (ketika belajar). Semoga Allah mengabulkan dan mensukseskan kita semua, Amiiin.

Rabu, 28 Mei 2014

Efek Mono di Campus yang Bisa Menggangu Aktifitas?

Hari demi hari.. tak terasa waktu begitu cepat berlalu, masih selalu bermimpi tentang apa yang di inginkan agar dapat diwujudkan, namun ketika sementara waktu hal itu tidak dapat di buktikan, berjuta alasan pun muncul, yang tidak dapat diterima oleh akal ini, ketika itu pula emosi bergejolak dalam diri, amat sedih dan kecewa. Terkadang hati ini seraya berkata "Ya Tuhan, berilah waktu lebih lama untuk dapat membuktikan dan membahagiakan orang-orang yang kucintai". Percepat lah.. dan mudahkan lah diri ini dalam menuntut ilmu untuk menjadi orang yang sukses di hadapan engkau dan kedua orang tua.

Doa yang dipanjatkan pada Tuhan selalu menyertaimu wahai yang tercinta (Orang tua dan calon pendamping hidup). Selagi aku sehat, maka aku akan terus berusaha, walau terkadang kegagalan selalu menghampiri dari luar perkiraan nalar ini, tapi terus bertekad untuk bangkit kembali secepatnya, dan ketika ingin bangkit itu sulit sekali, karena banyak sekali cobaan serta rintangan dari mulai kemalasan, aktifitas, serta khayalan yang tak bermanfaat, semua hal yang membuang waktu..

Sejenak meratapi, kegagalan itu, ternyata penyebabnya adalah sama, dari situ dapat disimpulkan, suatu niat tanpa manajemen waktu (disiplin waktu) yang baik, maka akan percuma. Dan juga sebaliknya, semua butuh proses dan kesabaran.. Jadi yang di butuhkan itu adalah pikirkanlah lagi tujuan itu  lalu bergerak.. bangun.. kerjakan/jalankan sampai berhasil ke tujuan tersebut dan kembali berusaha untuk selalu bersyukur kepada-Nya.

Mungkin hal ini tidak akan pernah di ketahui, sampai berhasil melakukannya?
Coba..ayo coba terus.. ini merupakan upaya selangkah lebih maju dari pada yang lain, jangan ada kata tapi dan tapi lagi... ketika sudah bosan, tak masalah, jika sekali-kali pergi untuk penyegaran.. lakukan hal positif apa yang ingin dilakukan atau pergi menikmati indahnya alam dan renungkan juga betapa besar ciptaan-Nya.

Kemalasan hanya bisa dibunuh dengan bangun, lalu pergi mandi setelah itu lakukan apa yang ingin dikerjakan. Pusing karena sesuatu hanya bisa di atasi dengan cara belajar dengan orang yang paham terkait masalah itu! atau browsing dan pelajari hal-hal terkait hingga paham dan mengerti. Tumbuhkan, kumpulkan dan pupuk motivasi sebanyak mungkin agar tidak jadi korban kemalasan akibat bisikan setan.

Ayo.. kamu bisa!! Kurangi atau hindari bermain facebook, path, twitteran dll..

Ingatlah sudah berapa banyak uang yang di keluarkan oleh orang tua?!
Harus sampai kapan orang tua berkorban di usia yang sudah mulai dewasa ini?
Betapa sakitnya jika orang tua tahu apabila mereka telah di khianati, di beri omong kosong dan dipermainkan oleh kata-kata (janji kosong) yang manis, tapi balasan atas tindakan itu kenapa bisa demikian?

Sudah lah... jangan galau lagi.. pergilah solat memohon ampun, petunjuk dan kelancaran kepada-Nya. Lalu bertekad dalam hati, aku akan menyelesaikannya... lalu lakukan aksi pertama yaitu dengan buka file kuliah dan topik skripsi di Laptop. Baca baik-baik lagi dan kerjakan dengan konsisten  #Fokus,  #Future in your hands .

Selasa, 20 Mei 2014

UAS Pemrogramman Java-Penuh Tantangan dan Cobaan

Suatu hari di hari tenang sebelum pelaksanaan UAS, dan UAS pemrogramman di percepat jadwalnya, waktu tak terasa sudah dekat dengan ujian pemrogramman vi (java). Tapi, aku belum mampu menguasai sepenuhnya konsep,metode dan implementasi logika, serta syntak program tersebut, apa daya? mau tidak mau, aku harus belajar dan terus belajar dan berusaha agar bisa lulus ujian matakuliah ini. Hmm... tapi semua terlambat,  ujian sudah terlalu dekat dan aku pun hanya mencoba berlatih sebentar dari contoh soal dan contoh kasus yang ada di internet. Tapi, sayangnya informasi contoh di internet masih banyak yang kurang jelas dan contohnya terlalu ribet untuk yang newbe , sehingga aku pun masih mengalami kebingungan dalam memahami logika programnya. Aku hanya mempelajari beberapa program saja, seperti proses penjumlahan, pengurangan, perkalian matrik dan pencarian matrik. Tapi, sungguh terlalu... prediksi ku 85% -__-'  meleset, ternyata soal yang keluar adalah berbeda dengan yang sudah di pelajari di kelas, aku hanya menduga bahwa yang keluar adalah soal seperti di atas tapi ternyata bukan seperti itu, soal yang keluar adalah adopsi operasi array/matrik saja yang di modifikasi menjadi matrik multidimensi 7*7 dengan di inisialisasi terlebih dahulu dan proses program pencarian bubblesort dan juga sorting.
Huh jd curhat!

Baiklah, maksud ku gini, karena mata kuliah ini penuh tantangan dan cobaan ketika UAS nya ketat (anti contekan internet/note), oleh karena itu aku ingin mencoba membahas dan berbagi cara menyelesaikan soal tersebut, dengan cara yang mudah di mengerti oleh newbe programmer, semoga info ini juga bermanfaat buat temen-temen informatika yang sedang belajar java atau mengalami kendala yang sama dengan saya :

Contoh soal:
User Interface (UI )Program 
1.Program Sorting Matrik 1Dimensi
2.Program Pindah String ke Array 1Dimensi
3.Pencarian Matrik Multidimensi 7*7 inisialisasi di awal, tampilkan matrik dan posisi yang dicari

Berikut adalah kode-kode programnya
Program1: Sorting Matrik 1D (operasi di constructor dlm 1 kls)
Kode akan di posting nanti!

Program2: Pindah string ke Array 1D (operasi di object)
Kode akan di posting nanti!

Program3: Pencarian Matrik Multidimensional (operasi di object)
Kode akan di posting nanti!
















Minggu, 04 Mei 2014

Cara Menggunakan Percabangan IF/SWITCH di Pemrograman C

Pada artikel Belajar Bahasa Pemrograman C kali ini kita akan membahas tentang. Cara menggunakan perintah percabangan if dan switch pada bahasa pemrograman C. Apa saja perintah untuk percabangan dalam bahasa pemrograman C, terdapat 2 perintah yaitu if dan switch.

Perintah if, else:

 Pada perintah if biasanya diikutkan dengan else, else disini bersifat opsional ditulis jika dibutuhkan. berikut contoh sourcodenya untuk menentukan nilai lebih besar dari 5 atau tidak :


 Sourcecode tersebut akan menghasilkan :

 Nilai kurang dari atau sama dengan 5

 Sourcecode diatas dapat dibaca jika variable nilai lebih besar dari 5 maka dijalankan perintah didalam blok if, sedangkan jika nilai kurang dari atau sama dengan 5 maka dijalankan blok perintah didalam else, tanda lebih besar (">") dapat digantikan dengan operator-operator persamaan (<, >, <=, =>, ==, !=) yang sempat disinggung sebelumnya. penulisannya dan artinya pun hampir sama dengan cara penulisan matekmatika, yang sedikit berbeda mungkin adalah tidak sama dengan yaitu "!=" dan sama dengan ditulis dengan double tanda sama dengan "==".

Bagaimana mudahkan menggunakan perintah if, Mari kita praktekan dengan menyelesaikan permasalahan dari pak petani pada artikel sebelumnya, dimana pak petani ingin menentukan tanaman yang cocok untuk ditanam pada bulan tertentu. berikut hasil riset untuk periode-periode tanam :

    bulan januari - bulan maret = tomat/cabai
    bulan april - bulan juni = jagung
    bulan juli - bulan september = wortel/kacang
    bulan oktober - bulan desember = kubis

berikut contoh sourcecodenya :


 berikut hasil dari sourcecode tersebut dari bulan 0 sampai 13 secara berturut-turut:

mungkin hari sudah malam pak petani perlu istirahat
tanaman yang cocok adalah tomat/cabai
tanaman yang cocok adalah tomat/cabai
tanaman yang cocok adalah tomat/cabai
tanaman yang cocok adalah jagung
tanaman yang cocok adalah jagung
tanaman yang cocok adalah jagung
tanaman yang cocok adalah wortel/kacang
tanaman yang cocok adalah wortel/kacang
tanaman yang cocok adalah wortel/kacang
tanaman yang cocok adalah kubis
tanaman yang cocok adalah kubis
tanaman yang cocok adalah kubis
mungkin hari sudah malam pak petani perlu istirahat

Perhatikan perintah diatas terdapat if didalam if, biasanya itu disebut dengan perintah if bersarang, terdapat operator baru lagi yaitu "&&", yang berperan sebagai "dan" yang mana kedua kondisi harus benar, jika tidak akan dianggap salah, operator ini dapat diganti dengan operator logika lain yaitu "or" ("||") yang berperan sebagai "atau" yang mana salah satu kondisi benar maka dianggap benar.

Perintah switch, case:
Selain perintah if dan else terdapat perintah switch, diperuntukan untuk kasus yang membutuhkan lebih dari satu kondisi, bagaimana cara menerapkan penggunaan perintah switch case pada kasus pak petani diatas, berikut cara penulisan sourcecodenya:


Perintah diatas akan menghasilkan hasil yang sama dengan perintah yang menggunakan if. parameter untuk switch dapat diisi dengan int atau char (1 karakter), begitu pula dengan nilai untuk case dapat berupa angka atau karakter,

Oke saya rasa cukup untuk percabangan, berikutnya akan membahas mengenai pemangkatan dan bilangan faktorial dengan menggunakan perulangan.
contoh kasus :
2 pangkat 3 = 2 * 2 * 2 = 8
3 faktorial = 1 * 2 * 3 = 6
bagaimana cara menulisnya dengan menggunakan perulangan, nanti dibahas pada artikel berikut.

Referensi: Pintar Coding

Minggu, 13 April 2014

Strategi Algoritma : Divide and Conquare (Kasus Min Max, Merge Sort, Mencari Koin palsu, Knapsack I/O

Apa kabar sobat informatika, sudah lama rasanya aku jarang aktif untuk memposting artikel maupun tutorial, karena akhir-akhir ini aku sedang "ripuh" mengurus laporan kerja praktik dan mempersiapkan untuk skripsi >.<.  Tapi, tetap bersukur masih bisa sempet membuka blogku ini yang udah lama kurang ke urus, seperti rumah berisikan barang usang yang dipenuhi sarang spiderman dan di huni oleh cucu-cucunya? a.k.a (artikel tdk update) hehe, Kok curhat? haduh!
okay, langsung aja deh ke pokok hal yang ingin dibahas,pada hari selasa lalu waktu bandung timur(WBT) ^^, aku di kasih tugas oleh dosen, yaitu disuruh buat algoritma dan program yang menggunakan strategi algoritma divide and conquare. 

Baiklah apa itu Strategi algoritma?
Strategi algoritma merupakan kumpulan algoritma yang disusun dari berbagai macam metode (cara) untuk menyelesaikan masalah dan sudah di definisikan, di gagas, di bukukan oleh si pembuat algoritma menjadi ke banyak metode penyelesaian. 

Nah disini aku ingin membahas salah satu metode yang cukup populer dan terkenal di kalangan mahasiswa informatika atau mungkin mahasiswa matematika. Yaitu, Metode Divide and Conquer dimana dulunya adalah strategi militer yang dikenal dengan nama divide ut imperes.Sekarang strategi tersebut  menjadi strategi fundamental di dalam ilmu komputer.

Definisi
Divide:  membagi masalah menjadi beberapa sub-masalah yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil (idealnya berukuran hampir sama),

Conquer: memecahkan (menyelesaikan) masing-masing sub-masalah (secara  rekursif), dan

Combine: mengabungkan solusi masing-masing sub-masalah sehingga membentuk solusi masalah semula.

Obyek permasalahan yang dibagi :
    masukan (input) atau instances yang berukuran n seperti:
    - tabel (larik),
    - matriks,
    - eksponen,
    - dll, bergantung pada masalahnya.

Tiap-tiap sub-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam skema rekursif.

Skema umum algoritma divide and conquare


Berikut adalah skema umum jika pembagian selalu menghasilkan dua sub masalah yang berukuran sama.
Gunakan T(n) =  g(n),  jika  n <= n0 ;  atau
                2T(n/2) + f(n),  n >n0



penyelesaian dengan metode divide & conquare:
Illustrasi Gambar 4.1
















  • Ukuran tabel hasil pembagian dapat dibuat cukup kecil sehingga mencari minimum dan maksimum dapat diselesaikan (SOLVE) secara lebih mudah.
  • Dalam hal ini, ukuran kecil yang dipilih adalah 1 elemen atau 2 elemen. 

 Gambar 4.2


















Algoritma cara penyelesaian kasus Min Max dengan Divide & Conquare:

Untuk lebih detail silakan download file dibawah ini,  apabila ada kekeliruan di algoritmanya silahkan berikan kritik dan sarannya yang bersifat membangun pada kotak komentar, Trims.
    
Download Materi Diktat Strategi Algoritma 
Download Contoh Kasus Lengkap Algoritma Min Max - Knapsack I/O

Rabu, 29 Januari 2014

Input Array dengan perulangan for dan searching

Input Array dengan perulangan for dan searching

Input Nilai dengan Looping 'For' (perulangan)

Input Nilai dengan Looping 'For' (perulangan)

 

Membuat Hello World dengan Bahasa C


Minggu, 29 Desember 2013

Algoritma dan Pemrogramman I : Definsi dan alasan mengapa membuat algoritma

     Hi sobat, sekarang aku ingin sharing pembahasan mengenai algortima. Mungkin bagi orang yang masih awam menganggapnya bahwa algortima itu adalah sama dengan logaritma dan sejenisnya. Sebenarnya algoritma itu tidak sama dengan logaritma seperti yang di pikirkan kebanyakan orang awam. Disini akan aku jelaskan, apa itu algoritma menurut pengertian/definisi ku sendiri, karena di bangku kuliah dosen ku yang ngajar kuliah algoritma menyarankan, agar kita sebagai mahasiswa mampu untuk menciptakan ,mengembangkan dan mengadopsi definisi-definisi yang sudah ada menjadi sebuah pengertian/definisi baru, menjadikan definisi yang lebih baik dan mudah di pahami orang lain.

Berikut ini definisi algoritma versi saya. Mungkin, bila ada kesalahan dan kekurangan, mohon di koreksi!

Baiklah, Apa itu Algortima?
Algoritma adalah cara/metode yang dibuat untuk menyelesaikan suatu masalah secara terstruktur (ter-urut) dan sistematis.

Catatan: 
Algoritma sangat erat kaitannya dengan logika matematika, urutan, tata cara penulisan (syntax) dan  analisis masalah untuk problem solving.

Ruang lingkup dan syarat algoritma harus ada :
Masukan (input) --> Proses (proccess) --> keluaran (output).

Perbedaan Algoritma dan Logaritma?
Algortima metode yang dibuat untuk menyelesaikan masalah secara terurut dan sistematis. Sedangkan Logaritma adalah sebuah operasi matematika yang sifatnya merupakan kebalikan dari eksponen atau perpangkatan, dasar logaritma adalah operasi perpangkatan yang memiliki sifat-sifat/bentuk lain.

Catatan : 
Dalam sebuah Algortima garis miring ("//") atau ("/*blablabla*/") berfungsi sbg komentar/penjelasan, tidak akan berpengaruh terhadap jalannya suatu algoritma maupun program. ("//") untuk single line dan ("/*blablabla*/") untuk multiple line.
Contoh Algortima:
Case1
//Title: Algoritma Taxi (algo sederhana)

1. Pergi ke tempat dimana taxi berada
2. Masuk ke dalam taxi
3. Beri supir taxi alamat tujuan anda

kasus lain, dituliskan sesuai dengan aturan/kaidah dan syntax penulisan algoritma.

Case2
//Title: Algoritma untuk menghitung Luas Persegi Panjang 

//kamus = (Deklarasi/keterangan tipe data untuk tiap variabel)
panjang : real;   //panjang diberi nilai dgn tipe data bilangan riil
lebar : real;      //
lebar diberi nilai dgn tipe data bilangan riil
luas : real;      //luas diberi nilai dgn tipe data bilangan riil

//Algoritma
output("Menghitung Luas Persegi Panjang");
output("Masukan Panjang Persegi :");
input(panjang);
output("Masukan Lebar Persegi :");
input(lebar);
output("Masukan Panjang Persegi :");
luas = panjang*tinggi;
output("Luas Persegi Panjang Adalah :",luas); 



Berikut ini, contoh algoritma untuk program konversi dari nilai biner ke logika bolean (Benar/Salah).
Case3

//Title : program_konversi_biner_boolean
//kamus (Deklarasi)
biner : bolean{benar,salah};

//Algoritma
output("Konversi Biner ke Boolean");
output("Masukan Bilangan Biner(0/1)");
input(biner);
if(biner=0) then output("salah");
else
output("salah");
endif



Contoh Logaritma:
Exponensial --> a^b = c , jika dimasukan nilai maka  2^3 = 8
Logaritma (kebalikan perpangkatan) --> a log c = b  atau 2 log 8 = ? ; maka, jawabannya adalah 3

Mungkin singkatnya logaritma seperti itu, jika sobat lupa atau ingin tau lebih detail bisa pelajari lagi materinya, tinggal googling. Disini aku ingin lebih memfokuskan kepada penjelasan mengapa seorang calon mahasiswa ilmu komputer (programmer) harus bisa memahami dan menulis algoritma.
Alasan mengapa perlu belajar algoritma, yaitu agar dapat terbantu dalam proses pembuatan alur program menjadi lebih mudah, cepat dan terstruktur. Algoritma merupakan dasar untuk memperkuat pondasi logika seorang programmer dalam menguasai berbagai bahasa pemrogramman yang semakin update dan banyak muncul dewasa ini. Terlebih bukan bahasa pemrogramman yang bersifat terstruktur, akan tetapi sudah berorientasi objek, umumnya cukup rumit dan disegani oleh sebagian kalangan mahasiswa ilmu komputer (calon programmer).

Tips-tips belajar algoritma :
1. Pelajari aturan penulisan (syntax) sesuai kaidah algortima dan yang bisa dimengerti orang lain.
2. Analisis masalah, tipe data apa saja yang dibutuhkan dari masalah tersebut?
3. Baca sampai paham dan berlatih secara kontinyu
4. Ngulik contoh yg ada/nyoba-nyoba algoritma orang dengan sedikit modifikasi
5. Implementasi algoritma ke bahasa pemrogramman yang dikehendaki
6. Jika gagal atau error, coba terus perbaiki secara kontinyu sampai berhasil
7. Pantang menyerah!
 Mumpung lagi liburan dan banyak waktu luang jadi dari pada bengong nge betein, gak tau kenapa aku ada hasrat buat nulis ini. Hmmm, Sepertinya segitu dulu, semoga bisa di buat lanjutannya! =)

Kamis, 24 Oktober 2013

Grafika Komputer Output Primitive : Ellips Midpoint Circle

ELLIPS
  • Ellips didefinisikan sebagai himpunan titik yangjumlah jarak dari 2 posisi yang tetap adalah sama untuk setiap titik.
  •  Persamaan Ellips dengan pusat 0,0 dan jari-jari Rx dan Ry adalah:














  
Algoritma Pembentukan elips
• Kuadran pertama dibagi menjadi 2 (dua) region danndengan menggunakan algoritma midpoint ellipse, plot titik untuk region pertama, kemudian koordinat akhir pada region I menjadi koordinat awal untuk region II.

Region 1 dan 2 dapat digunakan dengan berbagai macam cara. Pertama dimulai dari posisi (0,r) dan  melangkah searah jarum jam sepanjang jalur ellips pada kuadran pertama. Pergeseran dengan unit step dalam x pada saatslope lebih besar dari 1.

Cara mengerjakan algoritma ellipse hampir sama langkahnya dengan lingkaran, bedannya ellipse memiliki dua jari-jari dan memiliki dua daerah, yaitu region I & II, region I harus diselesaikan terlebih dahulu sebelum lanjut mengerjakan ke region II.

 Contoh soal ellips:

Studi Kasus!



Selasa, 22 Oktober 2013

Grafika Komputer Output Primitive : Lingkaran Midpoint Circle



Setelah sebelumnya membahasa algoritma DDA dan Bresenham, sekarang aku mau share  tentang algoritma midpoint circle untuk lingkaran dan ellips. 




















Persamaan Lingkaran
•   Lingkaran dapat digambarkan dengan menggunakan
persamaan koordinat rectangular tsb akan tetapi
pendekatan ini menimbulkan dua masalah yaitu :
–  Persamaan tersebut mengandung perhitungan akar yang
operasinya memakan waktu.
–  Timbul gap yang cukup signifikan pada lingkaran ketika
digambarkan. 










Midpoint Circle Algorithm
•   Untuk mengatasi masalah yang timbul dari penerapan koordinat polar maupun rectangular, Bresenham menyusun suatu algoritma pembentukan lingkaran yang hanya menggunakan aritmetika integer. Secara prinsip algoritma ini sejenis dengan algoritma penggambaran garis yang disusun oleh orang yang sama.

•   Lingkaran merupakan objek yang simetris sehingga karakteristik ini dapat dimanfaatkan untuk mengurangi pekerjaan pada saat menggambar lingkaran. Lingkaran dibagi menjadi 8 oktan (lihat
gambar 3.x), misalkan kita menyusun algoritma untuk menggambarkan lingkaran di oktan pertama, maka koordinat untuk 7 oktan selanjutnya dapat ditentukan.

 


 Midpoint Circle Algorithm
 















Langkah-langkah mengerjakan algortima midpoint circle
1. Input jari-jari (r) dan koordinar pusat lingkaran (xc,yc), kemudian tentukan koordinat untuk titik  awal (xo,yo) = (x, r)
2. Hitung nilai awal untuk parameter keputusan Po = 1 -  r
3. Untuk setiap xk, mulai dari k = 0, periksa/cek kondisi berikut :
  • Jika nilai pk < 0 maka, titik selanjutnya pada lingkaran dgn pusat (0,0) adalah                                   xk+1=x +1, nilai  y tetap; dan  pk+1 = pk + 2.x + 1
Selain itu berarti,
  •  pk > 0 maka, titik selanjutnya adalah xk+1 = x + 1, yk+1 = y - 1; dan  pk+1 = pk + 2x - 2y + 1
4. Ulangi langkah 3 sampai 4, hentikan perhitungan ketika x  > atau =  y


Contoh 1 :

















x^2 + y^2 = 100
Dari mana y = 10 ?  liat tabel pada plot awal (x,y)=(x,r) = (0,10)
ternyata 100 apabila di akar kan, maka hasilnya sama dengan 10
Po = 1 -  r  = 1 - 10 = -9
jadi, skrng jari-jarinya sudah diketahui = 10  dan  2x = 0,  2y = 20 , pk = -9

Nah..  tinggal menghitung k, dimulai dari k=0, sampai  batas yang di tentukan (x  > atau =  y).
Liat Algoritma midpoint circle dan Perhatikan Langkah-langkah mengerjakan algortima midpoint circle!
k=0
pk = 1 - r = 1 - 10 = -9
periksa pk,  pk < 0 maka,
xk+1 = 0 + 1 = 1 , nilai  10 tetap;
pk+1 = pk + 2.x + 1
         = -9  + 2 .1 + 1 =  -6
2x = 2
2y = 20

k=1
periksa pk,  pk < 0 maka,
xk+1 = 1 + 1 = 2 , nilai  10 tetap;
pk+1 = pk + 2.x + 1
         = -6 + 2 . 2 + 1 = -1
2x = 4
2y = 20

k=2
periksa pk,  pk < 0 maka,
xk+1 = 2 + 1 = 3 , nilai  10 tetap;
pk+1 = pk + 2.x + 1
         = -1 + 2 . 3 + 1 = 6
2x = 6
2y = 20

k=3
periksa pk,  pk > 0 maka,
xk+1 = 3 + 1 = 4, yk+1 = 10 - 1 = 9
pk+1 = pk + 2x - 2y + 1 
         =  6 + 2 . 4 - 2 . 9 + 1 =  6 + 8 - 18 + 1 = -3
2x = 8
2y = 18

Lanjutkan sampai (x  > atau =  y), selesai.


Contoh 2 :
1.Diketahui titik pusat lingkaran (0,0) dan radius 8, perhitungan berdasarkan otktan dari kuadran

pertama dimana x = 0  hingga y = 0. Nilai parameter dapat ditentukan dengan Po = 1 - r (jari-jari).
Buatlah garis lingkaran dengan algoritma midpoint circle?

Penyelesaian :
koordinat titik pusat sama dengan kuadran pertama (x,y) = (x, r) = (0,8)
Po = 1 -  r
     = 1 - 8 =  -7


K
PK
( xk + 1, yk + 1)
-
-
0,8
0
-7
1,8
1
-4
2,8
2
1
3,8
3
-6
4,7
4
3
5,7
5
0
6,6

k=0
pk= 1 - r = 1 - 8 = -7
periksa pk,  pk < 0 maka,
xk = x + 1 = 0 + 1 = 1 , nilai y tetap  8 ;

k=1
periksa pk,  pk < 0 maka,
xk = x + 1 =  1 + 1 = 2 , nilai y tetap  8 ;
pk+1 = pk + 2.x + 1
         = -7 + 2 . 1 + 1 =  -4

k=2
periksa pk,  pk < 0 maka,
xk = x + 1 = 2 + 1 = 3 ,  nilai y tetap  8;
pk+1 = pk + 2.x + 1
         = - 4 + 2 . 2 + 1 =  1

k=3
periksa pk, pk > 0 maka,
xk = x + 1 = 3 + 1 = 4 ; yk = y - 1 = 8 - 1 = 7
pk+1 = pk + 2x - 2y + 1 
         =  1 +  2.3 - 2.7 + 1 = 1 + 6 - 14 + 1= -6
k=4
periksa pk, pk < 0 maka,
xk = x + 1 = 4 + 1 = 5 ,  nilai y tetap  7;
pk+1 = pk + 2.x + 1
         = - 6 + 2 . 4 + 1 =  3

k=5
periksa pk, pk > 0 maka,
xk = x + 1 = 5 + 1 = 6 ; yk = y - 1 = 7 - 1 = 6
pk+1 = pk + 2x - 2y + 1 
         =  1 +  2.5 - 2.6 + 1 = 1 + 10 - 12 + 1= 0

Proses di hentikan karena (x  > atau =  y).

Kode Program Lingkaran akan di suguhkan nanti.. Stay tuned!!


Latihan 
Dengan menggunakan midpoint circle algortihm, buat
lingkaran berdasarkan persamaan berikut ini :
–    x 2 + y 2 = 64
–    x 2 + y 2 = 49