Web Services Development and Desktop Application

Our service available which to give the best service to our customers company for any categories development.

A Poem

There is no true love, the true love only in God!

The Magisters of Engineering

Have been graduated Huraa!

Cyber Eye

Cyber Eye is one of the community that founded by Adi Ahmad M outside campus, and have a goal to be technopreneurs in expanding knowledge and business in information technology!

We are in The Event of Programming Contest ACM 2011

This Photo taken when Event of Programming Competition ACM which implemented with online system from Widyatama University through Bina Nusantara University and some of top university in Asia to United States as the Promoter.

Informatics Research Development Lab

My Friends and as Senior was built and assembly a robots in ERD Lab.

The Committee of Advance.Inc Go to Campus Widyatama - Saung Android Bandung Workshop and Seminar

On this seminar we're discuss, to provide training about how to developing and costumizing mobile android app with eclipse development tools and also there is the introducing for the new product of Advance Android products (VANDROID)

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