Showing posts with label Computer Programming. Show all posts
Showing posts with label Computer Programming. Show all posts

Saturday 4 January 2014

API viewer

The API viewer enables us to browse through the declares, constants, and types.

After you want the procedure you want, you can copy the code to the clipboard and paste it into your visual basic application.

The API viewer application

Friday 3 January 2014

C

1. Datatypes 

Datatypes determine the size, layout of the variable's memory, the range of values that can be stored within that memory, and the set of operations that can be applied to the variable.

2. Variables
A name given to a storage area that our programs can manipulate.

Styles:
1.type variable_list;
2.type variable_name = value;




Type can be: {int, char, float, double, void}
Note: void is bencong (absence of type)

Integer

Floating point

Components:
1. storage size
2. value ranges
3. the precision (berapa dijit dibelakang koma yang dimunculkan)

Contoh:


3. Constants and literals: 
Constants: fixed values that the program may not alter during the execution of a program.
Programming practice use all capslock word as constant name

Literals:


Styles defining constant:
1. Using #define preprocessor
#define name value
example:
#define LENGTH 10

2. Using const keyword
const type variable = value;

example:
cons int LENGTH = 10;



4. Storage class
Define scope (visibility) and lifetime of variables.
Storage class: {auto, register, static, extern}

auto storage class is default, can only be used within a function
register storage class define a local variable that should be stored in register instead in RAM. This means the variable has a maximum value size equal to the register size(usually one word) and doesn't have unary operator (&) applied to it (as it does not have a memory location)
static storage class
extern storage class is used to give a reference of a global variable that is visible to all the program files. Can't be initialized




5. Operators
An operator is a symbol, symbol that tells the compiler to perform specific mathematical manipulation or logical manipulation.

Arithmetic = {+. -. /, *}
Relational = {==, !=, <, >, >=, <=}
Logic = {And, Or, Not}
Bitwise = {
Unary = & = give memory address of a variabel
Sizeof(type) or sizeof(variable): return the size of type/variable






6. Decision making
Components:
1. Conditionals to be evaluated
2. Statements to be evaluated

Styles:
1. If
if there is another if then use elseif


2. Switch



7. Loops
Components:
1.
2.
3.

Styles:
1.
2.

8. Functions
Function is a group of statements. Divide your code so each function performs a specific task.

C at least having 1 function that is main() function.

The type of a function specifies the type of function's return value.

For functions that require parameters, you can pass parameters by reference or by value.
For functions that not require parameters, you shall not pass parameters by reference or by value.

Alias
A function = a method = a sub-routine = a procedure

Components:
1. Function name
2. Function's return type value
3. Function's argument/parameter
4. What function do

Examples:
main()


9. Scope rules
Scope is a region, a region of where variable can be accessed (local/interlocal?)
Scope in Bahasa is Batasan, daerah mana variabel itu bisa diakses.
Scope = [local, global, formal]

Local variabel = variabels that declared inside a function or block. They can be used only by statements that are inside that function or inside that block of code. Local variables are not known to functions outside their own.




10. Arrays

Array is a data structure.
Array is a collection of variable of the same type.


11. Pointers
Untuk menyimpan alamat memori suatu variabel.
Trus apa gunanya kalau kita sudah simpan alamat memori suatu variabel? Yah, lo bisa munculinnya.


Styles:
type *variable_name

Example:
Int *aloha


12. Strings
The string in C programming language is actually a one-dimensional array of characters and terminated by null character.

13. Structure
Array is same data type but structure variabel can save many different data type.

You can access a variabel attribute with (.),example: variabel1.name, variabel1.memory_address,

1st. Define structure format
- define structure name
- define attributes

2nd. Assign a variable as member of  a structure
-

3rd.

14. Unions
Unions: "One (unity) for all"
Imagine that you want to build a variabel that not restricted to only one data type, how you do that?
It is using unions

1st. Define the variabel that would be used as unions
2nd.
3rd.

Unions is a special data type.


Unions allow us to store different data types in the same memory location.

Unions provide an efficient way of using the same memory location for multi-purpose.



15. Bitfields


16. Typedef
Typedef is to give a type a new name.
 


17. Input & Output
When we are saying Input that means

C treat all device as file. So display is addresses the same way as files.




18. File I/O
How to open/create, close, read and write a file.

File represent a sequence of bytes.

Open file
fopen()

Closing file
fclose()

Writing file
fputc()

Reading file
fgetc()


19. Preprocessors (something that compiler do before compiling our program)
CPP as C preprocessor.

All preprocessor commands begin with a pound system (#)

The most common examples:
#include <stdio.h>


20. Header Files
File header adalah sebuah file yang berekstensi .h yang memuat deklarasi-deklarasi fungsi C dan defenisi-defenisi macro dan untuk dibagi antara file-file source.

Ada 2 tipe dari file-file header: file header buatan sendiri atau file header bawaan.

Contoh file header bawaan: stdio.h

Kedua tipe file header di ikut sertakan dengan menggunakan # atau directive include.
Contoh:
#include <stdio.h>



21. Type Casting (converting)
Type casting is a way to convert a variable from one data type to another data type.

For example, if you want to store a long value into simple integer then you can type cast to long to int.


22. Error Handling (Nanganin error)

Error is not what we expected.

We can define

23. Recursion
Calling a function inside a function.

When? Very useful when used to solve mathematical problems like to calculate factorial of a number, generating fibonacci sequence, etc.
 




24. Variable Arguments
#include stdarg.h

25. Memory Management
#include stdlib.h

Components:
1. void malloc
2. 

 
26. Command Line Arguments
Components:
1. Argc
2. Argv



API (Application Programming Interfaces)

Allowing us to access arrays of function and method that an Operating System or other application (DLL) expose.

Operation such as shutting down a computer or listing the current running processes.




Pointer C

pointer(*) expecting/supposed to receive a memory address (room number) and return the value inside that memory address.
Notation: *p

while ampersand(&) expecting a variable


Cozy Environment to build a C program

1. Download codeblocks
2. Install codeblocks
3. Add codeblocks to system environment. Contoh: punya gue: C:/programfiles/codeblocks/bin
4. Open notepad, write your code there, save ke folder yang lo suka, punya gue: e:/C
5. Open cmd, type e:, type c,
6. type gcc <your filename> -o <your exe filename>
contoh: gcc aloha -o alohabin.exe
7. back to cmd, type alohabin
8. Finish

Component:
1. CMD
2. C file
3. C exe file

Compiling process in C


Komponen: samp.c, C compiler, samp.exe
Arti: file samp.c diinputkan ke C compiler kemudian dioutputkan menjadi samp.exe oleh C compiler.

Sekilas tentang C

Tentang
C menyediakan akses ke memory.

C memetakan instruksi-instruksi bahasa Assembly. Bahasa Assembly memetakan instruksi bahasa mesin. Jadi C juga memetakan instruksi bahasa mesin.

C membutuhkan dukungan run-time yang minimal.

C bisa digunakan untuk memprogram microcontroller sampai ke supercontroller.

C pertama kali digunakan untuk membuat sistem operasi UNIX.

Compiler
Microsoft's Visual C++ bisa mengkompilasi C dan C++
http://delorie.com/djgpp/

Library
Library = "Packeged of code yang membuat hidup kita lebih mudah"
Contoh: stdio.h

Standard types of variable
Int, char, float

Derivative types of variable

Bitwise Operation

Below bitwise operator works on bits and perform bit-by-bit operation.
Contoh:

A = 60
B = 13



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









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:

Thursday 14 November 2013

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)

Friday 3 May 2013

What does MC, MR, MS, M+, M- on a calculator?

I want to learn how memory works and this is one of the method to understand how memory works (that is: to store information)

MC = Memory clear = clear memory from any number that exist in memory
MR = Memory recall = redisplay the number that exist in memory
MS = Memory store = put a number to the memory
M+ = add a number to the number that exist in memory
M- = substract a number to the number that exist in memory

Source of interpretation: http://answers.yahoo.com/question/index?qid=20081014230447AAFcXFt