DOS Batch file untuk check apakah download selesai

FOR /F %%f IN (LIST.txt) DO IF NOT EXIST %%f ECHO %%f >> FAILED.txt

yup … cukup sesederhana itu …. dan coba lihat berkas FAILED.txt selepas menjalankannya untuk melihat apakah ada yang tidak terdownload (di LIST.txt ada, tetapi di direktori tidak ada)

nantinya, daftar di FAILED.txt dapat digunakan untuk mendownload lagi … tapi jangan lupa di-bersihkan kembali ya … karena modus pipanya di append (ditambahkan) lihat itu dua buah tanda kurung siku besar

Advertisements

w3schools.com JavaScript Console

Ceritanya, saya memberikan tugas kepada mahasiswa saya berkaitan dengan Scrapbook dan W3Schools, yang merupakan website yang bagus untuk belajar dasar-dasar pemrograman web. Saya, kebetulan dipercayakan untuk mengajar Pemrograman Web, Pemrograman Internet, Mobile Application di Program Studi Sistem Informasi FST UIN Suska Riau..

Nah, jika Anda hanya ingin menyimpan isinya saja, dan disimpan di Scrapbook, karena kampus saya terkadang putus Internetnya, maka, Anda bisa buka konsol JavaScript Anda, dan copy-paste perintah berikut ke konsol tersebut.

$(‘div.w3-container’).remove(); $(‘#topnav’).remove(); $(‘#leftmenu’).remove();  $(‘#right’).remove(); $(‘div.footer’).remove(); $(‘#mainLeaderboard’).remove(); $(‘div.chapter’).remove(); $(‘div.chapter’).remove(); 

Nanti, tampilan website w3schoolnya akan lebih bersih dan siap disimpan ke ScrapBook Firefox Anda!

Faktorial iterasi di Java (Android)

Pada postingan sebelumnya, kita menggunakan metode rekursif untuk menghitung faktorial. Kelemahan metode ini adalah dia akan terus melakukan push stack sehingga stack kita bisa saja menjadi overflow (melimpah). Jumlah stack tidak sama untuk tiap JVM, jadi kita tidak bisa memperkirakannya, karena error Stack Overflow terjadi saat runtime di client, bukanlah saat compiling …

Nah, alternatif perhitungan faktorial adalah dengan iterasi, yaitu perulangan.

Kode dapat dilihat di sini:

public void onClickFaktorial(View view){
    EditText i = (EditText) findViewById(R.id.editTextInput);
    EditText o = (EditText) findViewById(R.id.editTextHasil);
o.setText("");//clear
BigInteger bigI = new BigInteger(i.getText().toString());
Log.d("onClickFaktorial","bigI="+bigI.toString());

Perhitungan dilakukan dengan membuat BigInteger b, yang menampung hasil perkalian iterasi tersebut:

b = multiplied(BigInteger.ONE, bigI);
o.setText(b.toString());
} // end onClickFaktorial

dimana fungsi multiplied itu fungsi private kita, dapat dilihat berikut:

private static BigInteger multiplied(BigInteger start, BigInteger stop){
    Log.d("multiplied","start="+start+", stop="+stop);
    //jika start lebih besar dari stop, return satu
    if(start.compareTo(stop)> 0) return BigInteger.ONE;

    BigInteger result = start;
    BigInteger factor = start.add(BigInteger.ONE);

    // perhatikan bahwa compareTo <1 artinya 0 atau -1 ... "less than or equals" ... <=
    for (; factor.compareTo(stop)< 1; factor=factor.add(BigInteger.ONE)) {
        Log.d("multiplied",factor.toString());
        result = result.multiply(factor);
    }

    return result;
}

Fungsi private kita inilah yang berguna untuk menghitung perkalian faktorial, tetapi dimulai dari 2 dikalikan terus sampai bilangan target, stop…

Kenapa terlihat rumit, karena untuk BigInteger, kita tidak dapat menggunakan angka 1, tidak dapat juga melakukan perbandingan dengan tanda >, atau < atau besarsama dan kecil sama seperti bilangan lainnya.

Untuk memudahkan Anda melakukan debugging, saya tambahkan baris Log.d, sehingga nanti akan keluar lognya di Android Studio Anda.

Silahkan lihat bahwa sekarang Android Anda lebih hebat dari calc Windows Anda …

30 000 faktorial

 

Faktorial Rekursif di Java (Android)

Faktorial

Anda dapat melakukan perhitungan faktorial dengan class final dibawah ini,

import java.math.BigInteger;
public final class fak{
public static BigInteger f(int x){
return (x<=1) ? BigInteger.ONE:f(x-1).multiply(BigInteger.valueOf(x));
}
}

nantinya, di Android, tinggal tambahkan tombol , cari atribut onClick nya, isi dengan onClickFaktorial, lalu di kodingan javanya, tambahkan fungsi ini:

public void onClickFaktorial(View view){
EditText i = (EditText) findViewById(R.id.editTextInput);//.getText().toString();

//it’s final now, so … no need to create an instance
BigInteger b = fak.f(Integer.parseInt(i.getText().toString()));

EditText o = (EditText) findViewById(R.id.editTextHasil);
o.setText(b.toString());
}

Nah, seperti yang kita demokan di kelas, stack di Java tidak cukup untuk melakukan perhitungan 600!, tapi masih bisa 500!

Untuk kesempatan berikut, insyaAllah akan saya ulas tentang metode iterasistack overflow

PHP Advanced Graph & Chart Collection

PHP Advanced Graph & Chart Collection merupakan sebuah library php (source code) yang digunakan untuk menghasilkan Chart (diagram) dalam bentuk file gambar. Walaupun tidak sebagus chart yang lain, chart ini kelebihannya adalah full php. Versi trialnya pun menggunakan php

URL: http://www.jpowered.com/php-scripts/adv-graph-chart/advgraphext.zip
Size: 1608160

Untuk lebih jelasnya, berikut saya sertakan skrinsyot nya 😀

Nah … puas kan dengan fiturnya? Lalu bijimana kalau pengen ngilangin “iklan” yang ada pada posisi kiri atas versi trial? Kalau kamu tidak punya duit, dan hanya untuk belajar, silahkan oprek-oprek source codenya. Sedikit hint dari saya:

cari string if($V5bd7c9f0!=$V9bea6b44)

sisipin RETURN TRUE menjadi

if ($V5bd7c9f0!=$V9bea6b44) {
RETURN TRUE;

INGAT!!! ADA DI BEBERAPA TEMPAT DAN UNTUK MASING-MASING FILE HARUS DI UBAH!!!

kalau kamu puas dengan software nya, silahkan beli melalui link berikut: http://www.jpowered.com/php-scripts/adv-graph-chart/buy-now.htm

Oh iya, kalau kamu oprek source codenya, JUMLAH BARIS NYA JANGAN NAMBAH YAK! Kalau kamu mau mengubah jumlah barisnya, cari string print ” “; lalu baris itu kamu komen atau komen pake /* blok */

if (F6c9c7798(“bubble-chart.php”) != 326) {
//print ” “;//bikin error php nya dengan kirim output sebelum ubah header 😀
}