Java Array VS .Net Array….. Mana yang lebih power full??

Posted: 26 September 2010 in programming
Tag:, , ,

pendekar .Net VS Java

Assalamu’alaikum Wr. Wb.

Sebelum langsung mari kita basa basi dulu. Hmm saya teringat saat baru mulai masuk SMK Telkom Sandhy Putra Malang. Pada  awal perlajaran pemprograman Bu Reni bertanya. ini kilas balik, kata2 nya tidak persis. Bu Reni : Anak – anak kalian ingin jadi apa? Murid: hmm programmer (karena emang kelas kami kelas RPL)… kebanyakan menjawab itu…. namun ada salah satu teman yang nyeletuk/celoteh….. ingin jadi pendekar Bu…..saya lupa siapa yang mengatakan hal tersebut tapi bagus juga idenya…. hmmm temen2 sorak semuanya…. kenangan yang indah…. so sekarang saat nya mewujudkan hal tersebut….. @Bu Reni…. ini Bu pendekar yang dulu he he he…

PENDEKAR .Net


untung aja logo .Net sekarang biru… jadi match dech…. aku suka biru :p…. sekalipun di UIN “dipaksa” pake Java namun kali ini kita akan coba jalan laen… untuk itulah disebut pendekar…. selalu berjuang he he he … just a little part of  my big plan…. with a big risk absolutely

Let’s Start

Menguasai bahasa pemprograman itu cukup 1.  jika kebanyakan malah tidak fokus. menguasai 1 namun mengetahui ada baek nya beberapa bahasa pemprograman. hal ini diperlukan sebagai bahan referensi dalam menggunakan bahasa yang kita kuasai. tiap bahasa pemprograman memiliki kelebihan, dengan mengetahuinya kita bisa menerapkan di bahasa kita.

Hmm kali ini kita akan membahas array karena memang dapat tugas itu. hmm meski tugasnya gampang namun saya harus coding di 2 bahasa yang berbeda yaitu Java dan VB .Net, saya mencari metode paling mendekati antar kedua bahasa tersebut, capek juga ternyata….. nanti script nya berupa gambar

SOAL 1

buat array panjangnya 50, diisi random 1-100. dicopy ke array ke 2. (proses mengcopy array)

hasil array copy

array copy

ya ya ya…. anda sudah faham tentu proses copy array ini kan??proses pencetakan array yang biasanya pake perulangan sekarang ada fungsi arrays.tostring(array). lebih praktis daripada pake looping. kalo biasanya pake perulangan untuk mengcopy kan secara konvensional sekarang pake fungsi System.arraycopy(asal array, index mulai asal, array tujuan, index mulai tujuan, panjang array yang dicopy). menggunakan fungsi ini mengharuskan anda tahu ukuran array yang dicopy. array tujuan boleh lebih besar namun tidak boleh lebih keci karena nanti akan error. nilai b sebelum dicopy 0 karena variable ini belum di inisialisasi. sebenarnya saya juga bingung. array itu tipe data reference atau tipe daya value. Nilai default untuk tipe data value adalah nol(0) sedangkan tipe data reference defaultnya adalah nothing/null. Array merupakan tipe data reference namun mengapa nilai defaultnya adalah nol(0)??? jadi tambah bingung sendiri saya,,,, he he he :p

sekarang pake clone

array clone

hasil array clone

liad gambar langsung faham kan. clone membuat array yang dicopy sama persis. meski ukuran awalnya beda namun akan otomatis menyamakan. array b yang semula panjangnya 3 sekarang panjangnya mengikuti array a. untuk beda penggunaanya nanti akan dijelaskan.

sekarang untuk VB .Net

array copy n clone pada VB .Net

copy array part 2

hasil array copy n clone VB .Net

untuk deklarasi array di VB .Net beda. yang digunakan adalah batas atas. misal panjang array 50. berarti dideklarasikan sampai batas atas 49 karena 0-49 =50. Jika Java kan langsung ke panjang arraynya. VB .Net batas atasnya. lihad perbedaan deklarasi array nya. tapi fungsi length tetap sama yaitu panjang array dengan menghitung jumlah element nya. kalo VB .Net keseluruhan array. kalo Java hanya barisnya. penjelasan rincinya nanti.

fungsi clone dan arraycopy saya rasa sama saja. namun sepertinya saya tidak menemukan cara mencetak array secara langsung seperti arrays.tostring9array) di Java.  ya jadi pake cetak konvensional pake looping. namun anda perhatikan for yang dipakai. for each i as integer in b?? looping ini khusus untuk tipe data yang mempunyai anggota group seperti array dan collection(yang collection saya juga belum tahu). for each akan melakukan loop sebanya anggota dalam array. kemudian variabel control yaitu i akan bernilai sama pada anggota/element array yang dijadikan perulangan. cermati saja bagian for each nya. kalo dari bukunya S’to . bahasanya gini “Lakukan perulangan sebanyak jumlah element yang ada di dalam array b(disesuaikan aslinya Arr)  dan untuk setiap perulangan, masukkan nilai elementya ke dalam variable i”.

SOAL 2

buat matrix 4 x 4 dan 4 x 3 kemudian kalikan


perkalian matrix Java part 1

perkalian matrix java part 2

hasil perkalian matrix Java

beda dengan yang sebelumnya hanya untuk mecetak array lebih dari 1 dimensi menggunakan Arrays.deepToString(array).

perkalian matrix VB .Net part 1

perkalian matrix VB .Net part 2

hasil perkalian matrix VB .Net

sebenarnya saya tidak terlalu percaya apakah hasilnya benar atau tidak. mengingan ada angka yang mencurigakan. yaitu 22 22 22 22 ada 3 baris sama dan 38 38 38. untuk itu saya check dengan matlab. dan ternyata hasilnya benar. Hore…… ^_^

matrix a matlab

matrix b matlab

matrix c matlab

konsep perkalian matrix atara Java dan VB .Net sama saja saya rasa. sedikit penjelasan untuk arraynya. untuk mengetahui dimensi matrix 2 dimensi misalnya.

Di Java a.length menghasilkan jumlah baris dari matrik, a[0].length menghasilkan jumlah kolom dari matrix. Sedengkan di VB .Net========>

a.length menghasilkan jumlah keseluruahan element, a.getlength(0) menghasilkan jumlah baris dari matrix, a.getlength(1) menghasilkan jumlah kolom dari matrix. menurut analisis saya angka tersebut ada dimensi matrix. matrix 2 dimensi 0,1. matrix 3 dimensi 0,1,2 meski yang 3 dimensi belum saya coba. .Net kalo tidak salah bisa menampung sampai 32 dimensi. hmmm besar banget, sepertinya tidak sampai itu deh penggunaannya.

SOAL 3

buat array dynamic yang bisa resize jika ukurannya kurang.

resize matrix Java part 1

resize matrix Java part 2

seperti yang sudah saya bahas di artikel sebelumya. terlalu OOP juga kadang merepotkan juga. untuk membaca inputan keyboard saja harus membuat objek inputan dari class yang ada. kalo di VB .Net langsung console.readline() lalu dimasukkan variabel. objeknya sudah ada. tinggal menggunakan. liad gambar dibawah ntar. la disini lah saya akan bahasa perbedaan penggunaan clone dan arraycopy. saat dimasukkan ke temp kita gunakan nilai.clone() karena memang benar2 membutuhkan duplikat yang sama persis. lalu nilai di resize….setelah di resize baru di copy sesuai dengan length dari temp. kenapa koq tidak clone lagi??? karena kalo clone lagi ukurannya pasti balik jadi kecil sesuai dengan ukuran temp. intinya clone itu duplikat yang sama persis, sedangkan arraycopy hanya datanya yang sama. mengenai letak dll bisa diatur.

sekarang yang VB .Net

resize array VB .Net

seperti yang saya katakan tinggal console.readline() masukkan variabel. hanya untuk incement i++ sepeti di Java tidak ada jadi i +=1. tapi tidak masalah. la ini yang bagus. ketika kita meresize denga redim maka isi dari array juga akan hilang. namun ada fungsi preserve jadinya nilai array tidak akan hilang. efisien kan?? tidak perlu mengcopy ke array lain, resize, trus copy lagi. gimana? .Net lebih power full kan??

resize namun datanya tetap ada…. benchmark

hasil resize kiri Java, kanan VB .Net

hmm saya punya pertanyaan konseptual…

Apa bedanya perulangan for dan while???

penting bagi anda untuk tahu mengapa perulangan itu  ada banyak macam, ini konsep dasar. begini. kalo for itu awal start dan akhirnya sudah ditentukan. paling tidak bisa diramalkan. misal….. for(i=0;i<a.length;i++) ulang nilai awalnya 0 sampai nilai tersebut kurang dari panjang a. katakanlah a=6. jadi perulanganya bisa diramalkan 0, 1, 2, 3, 4, 5 (dalam keadaan normal). n setahu saya for itu digunakan untuk increment >=1 bilangan bulat tapi dulu kayaknya di lab pernah dicoba kenaikan <1 bilangan pecahan. gtw lagi ce. lupa. jadi gunakan for jika diketahui batas perulangannya.

lalu while???

whlie digunakan jika belum diketahui pasti perulang tersebut sampai kapan berakhirnya. dalam contoh di atas adalah selama lanjut bernilai true? kapan lanjut bernilai true ??? selama inputan untuk lanjut tidak bernilai “no”. jadi perulangan untuk menambah record tersebut bisa berulang kali tergantung user memasukkan nilai apa. bisa 3 kali, bisa 1000 kali, bisa-bisa aja he he. jadi perulangan tersebut tidak bisa diketahui berakhirnya saat pembuatan program, namun saat program itu dijalankan. dan bisa juga pengendalinya berupa variable angka yang kenaikannya tidak sebesar 1.

klo yang do-until lom tau saya he he he. tapi kayaknya kebalikannya while…. kalo while selama nilai itu bernilai true…. kalo do -until sampai nilai tesebut bernilai true(berarti selama perulangan nilainya false/tidak memenuhi)….. seingat saya seperti itu…. ^_^

SOAL 4

buat array random…. lalu sorting…. lalu cari index berdasarkan nilai inputan

sorting n binary search Java part 1

sort n binart seacr Java part 2

di VB .Net

sort n binary search .Net

hasil sort n binary search. kiri Java, kanan VB .Net

saya rasa tidak ada bedanya kali ini. Java sort dan binary search ada . di VB .Net pun ada…. cuman mungkin VB .Net tidak perlu import ditulis karena udah ada “Global Import” yang telah kita bahas pada artikel sebelumnya.

PENILAIAN

ya sekarang adalah hasil dari judul di atas. dan ….. pemenang pertama adalah….

MATLAB ……. loh si MatLab kan gak ikut kompetisi??? dia kan cuman pembanding??? iya bener…. namun segala urusan operasi aritmatik jagonya adalah MatLab. apalagi kalo sekedar array dan matrix saja……kita gak bisa memungkirinya…. meski ada software sejenis MatLab saya rasa ini yang paling power full karena paling populer… tidak akan bisa jadi populer kalo gak da orang yang suka karena kinerjanya…… bisa diterima???? (gaya bahasa Pak Suherman) salah satu dari guru favoritku di moklet…

yang keduaaaaaa……….

saya sedikit bingun karena beda tipis banget…. tapi saya akan berusaha objektif..

VB .Net ada

(+) preserve yang memungkinkan gak perlu temp array, punya execution flow for each untuk variabel yang punya anggota(array,collection) yang tidak dimiliki Java…, bisa readline tanpa membuat objek dahulu, global imports

(-)namun gak ada fungsi mencetak array secara langsung…. tidak punya increment i++ seperti di java

Java ada

(+)fungsi cetak array secara langsung( Array.toString(array)), incement i++,

(-)membutuhkan temp array untuk resize array, readline harus buat objek dahulu, harus ada importnya, penggunaan buffered reader harus ada try catch nya.

jadi pemenang ke dua adalah

VISUAL BASIC .Net beserta VC++,VC#,VJ#, dkk….. loh kenapa??? karena semua bahasa dalam platform .Net memiliki Kemampuan yang sama seperti yang telah kita bahas sebelumnya….

kemudian urutan ke tiga adalah

Java……….

ok sekian…. udah ngantuk saya….

waktunya bobo’

Wassalamu’alaikum Wr. Wb.



Komentar
  1. Nurul Aini mengatakan:

    Artikel yang menarik dan lumayan membantu, mampir yuk di blog saya😀 http://serbaserbi-mahasiswa.blogspot.com/2014/05/array-dan-matrix-pada-program-java.html

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s