Monday 25 November 2013

My notes: Javascript

Source referensi: http://www.htmldog.com/guides/javascript/

Kemampuan javascript:
1.  Making stuff hapen => cara menggunakan javascript dan konsol
2. Variable dan data => gimana cara membuat variabel dan bagaimana menggunakannya
3. Doing math => menggunakan variabel untuk menyimpan dan menggunakan angka-angka
4. Logic => bener atau salah
5. Conditional =>
6. Looping =>
7. Functions =>
8. Objects => Properti, method. Menginspeksi obyek-obyek.
9. Array => Mengambil elemen, meletakkan elemen itu kembali. Berapa panjang sebuah potongan string?


 2. Variabel and data (declaring, initialization and assignment)
var surname; (declaring only)
surname = "perjuangan9"; (initialization (giving variable first value))
var apples = 5, pears = 1 (declaring ,init, and assignment)
surname = "perjuangan9"
var jumlahBuah = apples + pears

3. Doing math
Math operator: x, /, +, -

4. Logic
Logic operator:

=== Equality
!== not Equal
> Greater than
< Less than
>=  Combined operations
<= Combined operations

Contoh:
123 === 123
True

123 < 231
True

5. Conditional
5.1 If
if (1 > 2) {alert ('Hello!!!!')}
Hello!!!!

5.2 if-else
if (1 < 2) {alert ('Hello!!!!')}
else {alert ('Boo....')}
 Boo....

6. Looping
6.1 While
var i = 0
while (i <9) { alert (i); i = i + 1; }

Usage: while (final expression) {execution}

6.2 For
for (i = 0; i = 9; i = i + 1;) {alert (i);} 

Usage: for (initialization; condition; final expression) {execution}

7. Function
keyword: function and return

var tambah = function (a, b){
return a + b;
};
alert(tambah(1,2))



8. Objects
Please introduce jedi:

Jedi's name = yoda
jedi's age = 899
jedi's talk = alert ("another sky walk...")

var jedi = { name: 'yoda, age: 899, talk: alert ("another sky walk....")}

8.1 Nested objects


9. Array
Array adalah kumpulan data









Wednesday 20 November 2013

My note: HTML Basic Tag

Materi:
  1. HTML Link
  2. HTML Table
  3. HTML List
  4. HTML Form
HTML Link Apa itu HTML Link? Menandai (mark-up) teks sebagai hyperlink. Kamu klik teks tersebut, kamu terbawa ke halaman situs yang lain. Bagimana menggunakan HTML Link Pada teks yang kamu inginkan ketik:
HTML Table Apa itu HTML table?
HTML List Apa itu HTML list?

Sunday 17 November 2013

My notes: REBOL language programming

Situs youtube:
http://musiclessonz.com/rebol_video_links.html

Rebol 3:
http://www.rebol.com/r3/docs/

Kemampuan Rebol
Rebol mampu untuk:
1. GUI
2. Baca dan tulis file
3. Bekerja dengan database
4. Memproses text
5. Transfer data accross network


Komponen Rebol:
1. Block
Singkatnya: Placeholder multi-value
Contoh-contoh blok:
1. x: [1 2 3] ; x adalah block
2. belanja: ["gula" "kopi" "susu"] ; belanja adalah block
3. prosedur1: [alert "Hello" request-text/title: "Siapa namamu?"]

1 adalah blok berisi angka sebagai datanya, 2 adalah blok berisi string sebagai datanya, 3 adalah blok yang berisi instruksi dalam perkenalan: mengucapkan salam (halo) dan bertanya siapa namamu.

Perbandingan: di PYTHON block disebut LIST. Block tidak bisa diisi instruksi. Berikut contohnya:

>>> a = [print "halo", print "siapa namamu?"]
SyntaxError: invalid syntax


Sekarang kamu sudah mengerti cara membuat block dalam REBOL. Selanjutnya, fungsi apa saja yang bisa diberlakukan pada block:

1. Fungsi sortir (sort x)
Fungsi sortir mengurutkan elemen-elemen dari blok berdasarkan alfabet huruf pertama.
Contoh: a = sort x
Setara python: x.sort

2. Fungsi Sequence
Kalimat kunci yang bisa kamu pakai: "item yang mana sequence berapa"
Contoh fungsi sequence dengan keyword first, second and third:
>> print first x
1
>> print second x
2
>> print third x
3

Contoh fungsi sequence dengan slash:
>> belanja/1
== "gula"
>> belanja/2
== "kopi"
>> belanja/3
== "susu"

3. Fungsi Find
Rebol mengembalikan (Return) item yg kamu cari dan semua item-item lainnya setelah/dibelakang item yang kamu cari itu.  Jadi Rebol tidak hanya mengembalikan item yang kamu cari tetapi juga item-item dibelakangnya. Memang REBOL alaminya seperti ini jadi jangan bingung.

Contoh:
>> belanja: ["gula" "kopi" "susu"]
>> find belanja "gula"
== ["gula" "kopi" "susu"] ; Rebol return bukan hanya "gula" tetapi juga "kopi" dan "susu".
>> find belanja "kopi"
== ["kopi" "susu"]
>> find belanja "susu"
== ["susu"]

 4. Fungsi Write
Kita akan menyalin isi dari blok ke dalam file text dan meletakkannya di dalam drive komputer.
Contoh:
>> belanja: ["kopi" "gula" "susu"]
>> write %/c/belanja.txt belanja
Sekarang, buka drive C kamu dan lihat file belanja.txt sudah ada disana. Isi blok belanja telah tersalin ke dalam file belanja.txt itu dengan tidak ada spasi dan tidak tanda kutip.

Dari keterangan diatas, kamu selanjutnya tahu bagaimana menyikapi hasil dari save-an syntax write diatas. Bagaimana jika kamu ingin menyimpan berspasi atau berkoma (seperti file CSV (comma seperated)?

5. Fungsi length
Menghitung jumlah item/elemen yang ada didalam suatu block.
Contoh:
>> belanja: ["gula" "kopi" "susu"]
== ["gula" "kopi" "susu"]
>> length? belanja
== 3

Contoh didalam PYTHON:
 >>> belanja = ['gula', 'kopi', 'susu']
>>> len(belanja)
3

2. Fungsi-fungsi
1. Do dan does
2. Func
3. Alert
4. join = concatenate strings
example:



3.  Conditional
3.1 If
If bisa digunakan untuk pemetaan 2 atau lebih variabel.

Misalnya kamu mempunyai usaha katring, kamu membutuhkan jadwal, hari dan jenis makanan. Jadwal terdiri dari perkawinan hari-hari yang ada dalam satu minggu dengan jenis makanan yang kamu mampu buat.

variabel hari memiliki nilai-nilai:
hari = {senin, selasa, rabu. kamis, jumat, sabtu, minggu}
jenis makanan = {nasi goreng, nasi kuning, nasi pecal, nasi rawon, nasi merah, nasi soto, nasi rames}

Jenis makanan (nasi goreng, ..., nasi rames) terpilih berdasarkan kondisi hari (senin, selasa, ..., minggu).

Jika hari senin, jenis masakan nasi goreng.
Jika hari selasa, jenis masakan nasi kuning.
Jika hari rabu, jenis masakan nasi pecal
Jika hari kamis, jenis masakan nasi liwet
Jika hari jumat, jenis masakan nasi rawon
Jika hari sabtu, jenis masakan nasi soto
Jika hari minggu, jenis masakan nasi rames.

Berikut salah satu contoh conditional-nya:
if [hari == senin] [print nasi goreng]
if [hari == selasa] [print nasi kuning]
if [hari == rabu] [print nasi pecal]
if [hari == kamis] [print nasi liwet]
if [hari == jumat] [print nasi rawon]
if [hari == sabtu] [print nasi soto]
if [hari == minggu][print nasi rames]

atau dengan tabel berikut hasil pemetaan antara hari dan jenis makanan:

Hari Jenis makanan
Senin nasi goreng
Selasa nasi kuning
Rabu nasi pecal
Kamis nasi liwet
Jumat nasi rawon
Sabtu nasi soto
Minggu nasi rames

3.2 Either
Either hanya digunakan untuk pemetaan variabel-variabel yang maksimum memiliki 2 buah nilai.

Variabel sendiri bisa diartikan sesuatu yang mempunyai lebih dari satu nilai.
 
Jadi kita cari contoh kasus dengan 2 variasi output. Sekeping mata uang logam memiliki 2 buah variasi, depan dan belakang.
Jika sisi mata uang yang keluar depan, tim yang kick-off duluan adalah Indonesia.
Jika sisi mata uang yang keluar belakang, tim yang kick-off duluan adalah Brazil.

Berikut pentabelan kondisi-kondisi diatas:
Sisi Mata Uang Tim yang kick-off
Depan Indonesia
Belakang Brazil

Berikut source code kondisi diatas menggunakan either:

rebol[ ]

sisi: request-text/title "tentukan sisi mata uang: "
either sisi == "depan"
[print "Tim yang kick off duluan adalah Indonesia" halt]
[print "Tim yang kick off duluan adalah Brazil" halt]


Berikut source code kondisi diatas munggunakan if:

rebol[]

sisi: request-text/title "tentukan sisi mata uang: "
if sisi = "depan" [print "Tim yang kick-off duluan adalah Indonesia" halt]
if sisi = "belakang" [print "Tim yang kick-off duluan adalah Brazil" halt]

Jika menggunakan either, kita menghemat beberapa baris instruksi program.

3.3 Switch
Berikut contoh kondisi contoh katring menggunakan conditional switch:

rebol [ ]

hari: request-text/title "Hari apa sekarang?"

switch/default hari [
"senin" [alert "Nasi Goreng"]
"selasa" [alert "Nasi Kuning"]
"rabu" [alert "Nasi Pecal"]
"kamis" [alert "Nasi Liwet"]
"jumat" [alert "Nasi Rawon"]
"sabtu" [alert "Nasi Soto"]
"minggu" [alert "Nasi Ramas"]
] [alert "nama hari yang kamu masukkan salah"]


Contoh kasus sepakbola dengan menggunakan switch:

Rebol [ ]

sisi: request-text

switch/default sisi [
"depan" [alert "Indonesia first kick-off"]
"belakang" [alert "Brazil first kick-off"]]
[alert "anda salah masukkan sisi"]


Python tidak mempunyai switch statement.

3.4 Case
Contoh kasus katring dengan menggunakan switch:

rebol [ ]

hari: request-text/title "Hari apa sekarang?"

case [
hari == "senin" [alert "Nasi Goreng"]
hari == "selasa" [alert "Nasi Kuning"]
hari == "rabu" [alert "Nasi Pecal"]
hari == "kamis" [alert "Nasi Liwet"]
hari == "jumat" [alert "Nasi Rawon"]
hari == "sabtu" [alert "Nasi Soto"]
hari == "minggu" [alert "Nasi Ramas"]
]

Contoh kasus sepakbola dengan menggunakan case:

rebol[]

sisi: request-text

case [
sisi == "depan" [alert "Indonesia first kick-off"]
sisi == "belakang" [alert "Brazil first kick-off"]
]

Python juga tidak mendukung case statement.

4. Converter/Parser
4.1 to-file


4.2 to-email


4.3 to-time

4.4 to-integer
USAGE:
    TO-INTEGER value
ARGUMENTS:
     value -- (Type: any)

5. Requester
Rebol menyediakan built-in GUI dialog dibawah ini untuk mempermudah pemasukan data pada saat program mu dijalankan.

Built-in dialog ini muncul pop-up di komputer kamu ketika kamu menjalankan program yang kamu buat.

Berikut pilihan-pilihan dialog yang telah tersedia pada REBOL:
5.1 request-dir 
Rebol meminta masukan alamat direktori.





5.2 request-download 

Rebol meminta masukan alamat situs yang hendak di-download

5.3 request-color 
Rebol meminta masukan warna
Data yang dimasukkan disimpan sebagai Tuple!


5.4 request-pass
Rebol meminta masukan kata kunci (password).

5.5 request-text 
Rebol meminta masukan text.
Data yang dimasukan disimpan sebagai data bertipe string (string!).

Text yang dimasukkan bisa dikonversikan ke tipe lain menggunakan perintah, seperti: to-file, to-email, to-time.


Refinement request-text yang sering digunakan:
1. /title
2. /

5.6 request-list 
Rebol meminta masukan daftar.


5.7 request-date
 Rebol meminta masukan tanggal.

5.8 request-file
Rebol meminta nama file yang akan diolah.

5.9 request-download
5.10 request-list


6. Loops
6.1 For
>> for angka 1 10 1 [print angka]
1
2
3
4
5
6
7
8
9
10

6.2 Forever
Mengevaluasi suatu blok terus menerus (endlessly).
General syntax: forever body
Contoh:

Excel Programming Concept

http://msdn.microsoft.com/en-us/library/office/bb687921.aspx

Saturday 16 November 2013

My work: Membuat program sederhana konversi bilangan ke kalimat

Cara mengerjakan manual:



Source code (Python 2.7):

u = input ('Masukkan angka (Contoh: 132) : ')
a = u / 100
b = u - 100 * a
c = b / 10
d = b - c * 10

x = ['seratus','dua ratus', 'tiga ratus', 'empat ratus', 'lima ratus', 'enam ratus', 'tujuh ratus', 'delapan ratus', 'sembilan ratus']
y = ['sepuluh', 'dua puluh', 'tiga puluh', 'empat puluh', 'lima puluh', 'enam puluh', 'tujuh puluh', 'delapan puluh', 'sembilan puluh']
z = ['satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan','sembilan']

p = x[a-1]
q = y[c-1]
r = z[d-1]

print p + " " + q + " " + r




Rev.1 :
u = input ('Masukkan angka (Contoh: 104) : ')
a = u / 100
# misal u = 104
# a = 104 / 100
# a = 1

b = u - 100 * a
# b = 4

c = b / 10
# c = 4 / 10
# c = 0

d = b - c * 10
# d = 4 - 0 * 10

e = a
f = c
g = d

x = ['seratus','dua ratus', 'tiga ratus', 'empat ratus', 'lima ratus', 'enam ratus', 'tujuh ratus', 'delapan ratus', 'sembilan ratus']
y = ['sepuluh', 'dua puluh', 'tiga puluh', 'empat puluh', 'lima puluh', 'enam puluh', 'tujuh puluh', 'delapan puluh', 'sembilan puluh']
z = ['satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan','sembilan']

p = x[e-1]
q = y[f-1]
r = z[g-1]

if e == 0:
    if f == 0:
        if g == 0:
            r = 'nol'
            print r
        if g != 0:
            print r
    if f != 0:
        if g == 0 :
            print q
        if g !=0 :
            print q, r
if e != 0:
    if f == 0 :
        if g == 0 :
            print p
        if g !=0:
            print p, r

    if f != 0:
        if g == 0:
            print p, q
        if g != 0:
            print p, q, r
         


Thursday 14 November 2013

Jenis-jenis perangkat lunak (software)

Jenis-jenis perangkat lunak (software) antara lain:
1. Sistem software

Sistem software mempunyai/memiliki kontrol dan akses langsung ke perangkat keras (hardware) komputer dan lokasi-lokasi memori.

Teruntuk memori, sistem software mampu melakukan proses masuk keluar data (input output) I/O ke bermacam lokasi memori.

Contoh:

2. Application software (perangkat lunak aplikasi)

Tidak memiliki akses langsung ke perangkat keras (hardware).
Dijembatani oleh sistem software untuk pengambilan data dari hardware.
Perangkat lunak aplikasi biasanya melaksanakan fungsi/tugas spesifik/tertentu. Contoh: pengolah kata, pengolah gambar.

Contoh:

3. Programming software
Merupakan perangkat lunak untuk melakukan pemrograman kedua jenis software diatas: aplication software dan sistem software.

Contoh:

Sumber referensi: http://en.wikipedia.org/wiki/List_of_software_categories

My work: Membuat pendaftaran IP address per segmen menggunakan Python

Demo program:


Cara mengerjakan manual:



Source code (Python 2.7):

x = raw_input ('Masukkan nomor IP (Cth. 192.168.1.1) :')
y = raw_input ('Masukkan subnet mask (Cth. 255.255.255.192) :')

a = x.split('.')
b = y.split('.')

c = []
d = []

# c = IP address (x) ter-list
for i in a:
    c.append(int(i))

# d adalah subnetmask (y) ter-list
for i in b:
    d.append(int(i))

# e adalah hasil proses AND antara IP address ter-list dan subnetmask ter-list
# e akan digunakan untuk "membersihkan" IP address
e = []
for i in range (0,4):
    e.append(c[i]&d[i])

# g adalah hasil pengurangan antara subnetmask all 1 dan subnetmask ter-list
# g digunakan untuk increment IP address
f = [255, 255, 255, 255]
g = []
for i in range (0,4):
    g.append(f[i]-d[i])

# h adalah hasil pengurangan antara
h = []
for i in range (0,4):
    h.append(abs(e[i]-g[i]))

for i in range (e[0],h[0]+1):
    for j in range (e[1],h[1]+1):
        for k in range (e[2],h[2]+1):
            for l in range (e[3],h[3]+1):
                print str(i) +"."+str(j)+"."+str(k)+"."+str(l)