Wednesday 27 November 2013



Calling sub procedure and function procedures

Bagaimana cara memanggil suatu sub procedure dari sub procedure yang lain?

Untuk memanggil suatu Sub procedure dari Sub procedure yang lain, ketik nama dari procedure yang kamu inginkan untuk dipanggil dan ikut sertakan argument-argumen yang dibutuhkan Sub procedure yang akan dipanggil itu.
Panggil namanya, sertakan argumen-argumen yang dibutuhkannya
Kamu bisa menggunakan Sub procedure untuk mengatur prosedur-prosedur yang lain supaya mudah dimengerti dan di-debug

Contoh dibawah ini, sub procedure Main memanggil sub procedure Multibeep, serta menyertakan value 56 sebagai argumennya. Setelah sub procedure Multibeep berjalan sampai selesai, pengendalian dikembalikan ke sub procedure Main, dan yang dilakukan sub procedure Main selanjutnya adalah memanggil Sub procedure Message, sub procedure Message bertugas menampilkan sebuah kotak pesan; ketika user menekan OK, pengendalian dikembalikan ke Main, dan Main selesai.

Sub Main()
    Multibeep 56
    Message
End sub

Sub Multibeep(numbeeps)
    For counter = 1 to numbeeps
        Beep
    Next counter
End sub

Sub Message()
    Msgbox "Time to take a break!"
End sub



Memanggil sub precedure yang memiliki lebih dari satu argumen

Pada dasarnya untuk memanggil sub procedure terdapat dua cara:
1. Menggunakan keyword Call
2. Tidak menggunakan keyword Call

Dengan menggunakan keyword call butuh parentheses atau tanda kurung.
Tidak menggunakan keyword call, tidak membutuhkan parentheses atau tanda kurung.

Sementara, untuk memasukkan lebih dari satu argument tambahkan tanda koma (argumen1 koma argumen2).

Dibawah ini adalah contoh bagaimana sub procedure housecalc dipanggil dari dalam sub procedure main.

Statement housecalc 99800, 43100 menyertakan 2 buah argumen dan tidak menggunakan keyword Call.

Statement  Call housecalc(380950, 49500) menyertakan 2 buah argumen dan menggunakan keyword Call dan mengapit kedua argumen itu didalam tanda kurung.


Sub main()
    housecalc 99800, 43100
    Call housecalc(380950, 49500)
End Sub

Sub housecalc(price As Single, wage As Single)
    If 2.5 * wage <= 0.8 * price Then
        MsgBox "You cannot afford this house"
    Else
        MsgBox "This house is affordable."
    End If
End Sub

Memanggil Prosedur Function

Dari tadi kita hanya membahas cara memanggil sub procedure. Dengan menggunakan keyword Call atau dengan tidak menggunakan keyword Call.

Bagaimana dengan cara memanggil prosedur function?

Untuk memanggil function dan memanfaatkan hasil return nya, assign function itu sebuah variabel, bungkus argumennya dengan tanda kurung.
Contoh statement:
Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3")
     

Untuk memanggil function dan tidak memanfaatkan hasil return nya, tidak perlu assign function itu ke sebuah variabel dan tidak perlu bungkus argumennya dengan tanda kurung.
Contoh statement:
MsgBox "Task Completed!", 0, "Task Box"



Melepas named argument

Komponen Named argument terdiri dari: {nama argumen, tanda ( =: )dan nilai yang diberi}

Urutan named-named argument bebas siapa yang duluan. Pada Contoh 1 dan 2 dibawah ini named argumen Title yang lebih dulu dari named argumen Prompt.

Contoh 1:
msgbox Title=:"Task Box", Prompt :="Task completed!"
Contoh 2:
answer3 = msgbox(title :="Question3", _
prompt:="Are you happy with your salary?", buttons:=4)

Msgbox arguments


Calling sub procedure and function procedures

Bagaimana cara memanggil suatu sub procedure dari sub procedure yang lain?

Untuk memanggil suatu Sub procedure dari Sub procedure yang lain, ketik nama dari procedure yang kamu inginkan untuk dipanggil dan ikut sertakan argument-argumen yang dibutuhkan Sub procedure yang akan dipanggil itu.
Panggil namanya, sertakan argumen-argumen yang dibutuhkannya
Kamu bisa menggunakan Sub procedure untuk mengatur prosedur-prosedur yang lain supaya mudah dimengerti dan di-debug

Contoh dibawah ini, sub procedure Main memanggil sub procedure Multibeep, serta menyertakan value 56 sebagai argumennya. Setelah sub procedure Multibeep berjalan sampai selesai, pengendalian dikembalikan ke sub procedure Main, dan yang dilakukan sub procedure Main selanjutnya adalah memanggil Sub procedure Message, sub procedure Message bertugas menampilkan sebuah kotak pesan; ketika user menekan OK, pengendalian dikembalikan ke Main, dan Main selesai.

Sub Main()
    Multibeep 56
    Message
End sub

Sub Multibeep(numbeeps)
    For counter = 1 to numbeeps
        Beep
    Next counter
End sub

Sub Message()
    Msgbox "Time to take a break!"
End sub



Memanggil sub precedure yang memiliki lebih dari satu argumen

Pada dasarnya untuk memanggil sub procedure terdapat dua cara:
1. Menggunakan keyword Call
2. Tidak menggunakan keyword Call

Dengan menggunakan keyword call butuh parentheses atau tanda kurung.
Tidak menggunakan keyword call, tidak membutuhkan parentheses atau tanda kurung.

Sementara, untuk memasukkan lebih dari satu argument tambahkan tanda koma (argumen1 koma argumen2).

Dibawah ini adalah contoh bagaimana sub procedure housecalc dipanggil dari dalam sub procedure main.

Statement housecalc 99800, 43100 menyertakan 2 buah argumen dan tidak menggunakan keyword Call.

Statement  Call housecalc(380950, 49500) menyertakan 2 buah argumen dan menggunakan keyword Call dan mengapit kedua argumen itu didalam tanda kurung.


Sub main()
    housecalc 99800, 43100
    Call housecalc(380950, 49500)
End Sub

Sub housecalc(price As Single, wage As Single)
    If 2.5 * wage <= 0.8 * price Then
        MsgBox "You cannot afford this house"
    Else
        MsgBox "This house is affordable."
    End If
End Sub

Memanggil Prosedur Function

Dari tadi kita hanya membahas cara memanggil sub procedure. Dengan menggunakan keyword Call atau dengan tidak menggunakan keyword Call.

Bagaimana dengan cara memanggil prosedur function?

Untuk memanggil function dan memanfaatkan hasil return nya, assign function itu sebuah variabel, bungkus argumennya dengan tanda kurung.
Contoh statement:
Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3")
     

Untuk memanggil function dan tidak memanfaatkan hasil return nya, tidak perlu assign function itu ke sebuah variabel dan tidak perlu bungkus argumennya dengan tanda kurung.
Contoh statement:
MsgBox "Task Completed!", 0, "Task Box"



Melepas named argument

Komponen Named argument terdiri dari: {nama argumen, tanda ( =: )dan nilai yang diberi}

Urutan named-named argument bebas siapa yang duluan. Pada Contoh 1 dan 2 dibawah ini named argumen Title yang lebih dulu dari named argumen Prompt.

Contoh 1:
msgbox Title=:"Task Box", Prompt :="Task completed!"
Contoh 2:
answer3 = msgbox(title :="Question3", _
prompt:="Are you happy with your salary?", buttons:=4)

Msgbox arguments

Tuesday 26 November 2013

COMPARE: REBOL, C, JAVASCRIPT, PYTHON, VBA

NOTES about below scripts:
1. Python's should be written in its CLI
2. REBOL's should be written in its CLI
3. JAVASCRIPT should be written in a windows 7 notepad, inside <script> and </script> tags
4. VBA should be written on Visual Basic Editor on Microsoft Excel
5. C should be written on .....

VARIABLE DECLARATION
On REBOL:
No need

On Python:
No need

On C:

On Javascript:


Conditional statement(IF)
: Make decision
General task:
- define the condition to be evaluated
- define one or more statements to run

Looping Statment / Control structures
: Repeat actions (for how long, until what)
 
FOR
On REBOL



On VBA
For  i = 0 to 10
    

USER DEFINED FUNCTION

 Via REBOL

>> cetak: func [kata][print kata]
>> cetak ("yoss....")
yoss...

*** Rebol tidak perlu mendefinisikan var printer atau kata terlebih dahulu***
***use func keyword***

Via Javascript

var printer: function(kata){
alert kata
}

Via PYTHON


>>> def cetak(kata):
    print kata
    return
>>> cetak('yuyu hakuso')
yuyu hakuso
>>> cetak('aloha')
aloha

*** Sama seperti REBOL, Python tidak perlu mendefinisikan variabel printer atau variabel kata terlebih dahulu***

Via VBA (Microsoft Excel)

Writing editor on  Visual Basic Editor (tekan ALT+F11):
1. Insert new module
2. Insert below code
Function cetak()
    cetak = "Aloha"
End Function


Monday 25 November 2013

Tombol HTML trus dikasih script

Cara membuat tombol html dan kasih script

<html>
<head>
</head>
<body>
<button onclick=greeting()>tombol</button>
<script>

var greeting = function () {
alert ('hello world!')
}

</script>
</body>

apa itu alert? cuma nampilan pop-up browser dengan tulisan hello world!
apa itu var greeting = function() ?


My work: Javascript trial and error

Watch how the code grows.
All codes are executable (error free)


<html>
<head> <title> Hello </title> </head>
<body>
<script>

var name = ['Totardo', 'Andriani', 'Jonathan']

var greeting = function (person)
{
return 'Halo untuk kamu dari ' + person
}

alert (greeting(name[0]))

</script>
</body>

</html>



<html>
<head> <title> Hello </title> </head>
<body>
<script>

var name = ['Totardo', 'Andriani', 'Jonathan']

var greeting = function (person)
{
return 'Halo untuk kamu dari ' + person
}

for (var i = 0; i < name.length; i ++)
{
alert (greeting(name[i]))
}

</script>
</body>

</html>

Notice that:  alert (greeting(name[0])) changed to alert (greeting(name[i]))


Welcome network security guy

Your tools is : extended access-list
Your job is:
- watch newly born network application
- block bad guy

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)