Selasa, 22 April 2008

interupt

INTERUPT

Program Percabangan

program melompat ke sebuah program lain untuk melaksanakan operasi yang lebih khusus

  1. subroutine

    Terjadi pada bahasa pada tingkat tinggi

  2. Procedure

    Terjadi pada bahasa tingkat rendah

  3. Trap

    pesan kesalahan

  4. Inerupt

    Permintaan dari hadware, processor akan mengeksekusi berdasarkan tingkat prioritas

  5. Exception

Percabangan ada 2 jenis:

  1. Percabangan tunggal

  2. percabangan berganda (nested branch)

Jenis-jenis interupsi

  1. Interupsi internal Mikroprocessor

  2. Interupsi Mutlak (Non Maskable interupt)

  3. Maskable interupt

  4. asdf

Prioritas Pelaksanan Interupsi

  1. Berdasarkan jenisnya

*) Interupsi internal (ex pembagian dengan nol)

*) mutlak gangguan listrik jenis non maskable (mutlak, tidak bisa diganggu gugat)

*) Software interrupt jenis maskable

*) Hardware interupt jenis maskable

  1. Berdasarkan tingkat penomorannya

Interupsi berdasarkan nomor

0 Pembagian dengan nol

1 Langkah tunggal

3 Breakdown

4 Overvlow

5 Print screen

Interupt nol akan disimpan pada alamat 0000 : 0000 (4 digit di depan : adalah CS dan 4 digit dibelakang adalah IP)

Setiap interupt akan memakai memori 4 byte

1 alamat memory 2 angka heksa = 8 bit = 1 byte


interupt 0 di 0 0000

interupt 1 di 4 4

interupt 2 di 8 8

interupt 3 di 12 C

interupt 4 di 16 10

interupt 5 di 20 14


untuk melihat alamat dari sebuah interupt (4 byte,. 4 alamat memory)

syntaxnya: d 0000:0014 L 4 akan tampil 4 buah alamat

output: B9 06 0A 02 (contoh saja, bisa jadi komputer yang berbeda menghasilkan output yang berbeda juga)

untuk melihat instruksi yang terjadi dalam sebuah interupt

syntax: u 020A:06B9 (membalik, dibaca dari belakang)


untuk menjalankan interupsi mengguanakan G


untuk melakanakan interupt misal di alamat mempry 100

- A 100

........ INT 5

......

-RIP

IP 0100 (untuk memastikan bahwa IPnya 100)

:100

-R

.......................................

........................................

....... INT 05


G batas akhir (contoh G 102)

P (menampilkan satu interupt)


mencetak karakter

  • a 100]

    ............. mov ah, 2

    ............. mov dl, 41

    ............. int 21

    ............. int 20

    .............

  • g

    A

    progress terminated .....


mencetak string

- e 200

    ................. 01.50 3A.52 dst (proses menulis string di memory)

  • d 200 (untuk melihat string yang dibuat tadi)

  • a 100

    ............ mov ah,9

    ............ mov dx, 200

    ............ int 21

    ............ int 20

    ............

  • g

    PR

    program terminated .....



Read More..

cekINTERUPT
Program Percabangan
program melompat ke sebuah program lain untuk melaksanakan operasi yang lebih khusus
1.subroutine
Terjadi pada bahasa pada tingkat tinggi
2.Procedure
Terjadi pada bahasa tingkat rendah
3.Trap
pesan kesalahan
4.Inerupt
Permintaan dari hadware, processor akan mengeksekusi berdasarkan tingkat prioritas
5.Exception
Percabangan ada 2 jenis:
1.Percabangan tunggal
2.percabangan berganda (nested branch)
Jenis-jenis interupsi
1.Interupsi internal Mikroprocessor
2.Interupsi Mutlak (Non Maskable interupt)
3.Maskable interupt
4.asdf
Prioritas Pelaksanan Interupsi
1.Berdasarkan jenisnya
*) Interupsi internal (ex pembagian dengan nol)
*) mutlak gangguan listrik jenis non maskable (mutlak, tidak bisa diganggu gugat)
*) Software interrupt jenis maskable
*) Hardware interupt jenis maskable
2.Berdasarkan tingkat penomorannya
Interupsi berdasarkan nomor
0 Pembagian dengan nol
1 Langkah tunggal
3 Breakdown
4 Overvlow
5 Print screen
Interupt nol akan disimpan pada alamat 0000 : 0000 (4 digit di depan : adalah CS dan 4 digit dibelakang adalah IP)
Setiap interupt akan memakai memori 4 byte
1 alamat memory 2 angka heksa = 8 bit = 1 byte

interupt 0 di 0 0000
interupt 1 di 4 4
interupt 2 di 8 8
interupt 3 di 12 C
interupt 4 di 16 10
interupt 5 di 20 14

untuk melihat alamat dari sebuah interupt (4 byte,. 4 alamat memory)
syntaxnya: d 0000:0014 L 4 akan tampil 4 buah alamat
output: B9 06 0A 02 (contoh saja, bisa jadi komputer yang berbeda menghasilkan output yang berbeda juga)
untuk melihat instruksi yang terjadi dalam sebuah interupt
syntax: u 020A:06B9 (membalik, dibaca dari belakang)

untuk menjalankan interupsi mengguanakan G

untuk melakanakan interupt misal di alamat mempry 100
- A 100
........ INT 5
......
-RIP
IP 0100 (untuk memastikan bahwa IPnya 100)
:100
-R
.......................................
........................................
....... INT 05

G batas akhir (contoh G 102)
P (menampilkan satu interupt)

mencetak karakter
a 100]
............. mov ah, 2
............. mov dl, 41
............. int 21
............. int 20
.............
g
A
progress terminated .....

mencetak string
- e 200
................. 01.50 3A.52 dst (proses menulis string di memory)
d 200 (untuk melihat string yang dibuat tadi)
a 100
............ mov ah,9
............ mov dx, 200
............ int 21
............ int 20
............
g
PR
program terminated .....

Read More..

Fungsi Agregat

Tulisan ini adalah catatan praktikum Basis Data yang sempat saya catat di lab, hari Selasa 22 April 2008.

SELECT * FROM class;

digunakan untuk menampilkan isi tabel class

SELECT COUNT(name) FROM CLASS;
digunakan untuk menghitung banyaknya baris dalam kolom name tabel class

SELECT COUNT(distinct name) FROM CLASS;

digunkan untuk menghitung banyaknya baris, jika ada data yang sama dalam sel yang berbeda, maka dihitung sebagai satu baris

SELECT AVG(age) FROM student;
digunakan untuk menghitung rata-rata data dari kolom age, tabel student

SELECT MIN(age), MAX(age) FROM student;
digunkan untuk menampilkan nilai terkecil dan terbesar dari kolom age, tabel student

SELECT SUM(age)/ COUNT(age) FROM student;
digunakan untuk menghitung jumlah umur kemudian membaginya dengan banyaknya baris. hasil ini sama dengan Query fungsi agregat AVG diatas.

jika ada data kosong/ tidak diisi (bukan nilainya nol lho), berarti dianggap tidak ada data itu dan sel itu juga dianggap tidak ada

CONTOH KASUS:

  1. Menampilkan banyaknya kelas yang diajar oleh dosen. hasilnya adalah dua tabel, tabel pertama nama dari lecturer dan tabel kedua banyaknya kelas yang diajar.
    jawab:
    SELECT lecturer, COUNT(name) FROM class GROUP BY lecturer;
  2. Menampilkan usia minimum dan maksimum dari tiap departemen
  3. jawab:
    SELECT major, MIN(age), MAX(age) FROM student GROUP BY major;
  4. Menampilkan rata-rata usia mahasiswa dari tiap departemen
  5. jawab:
    SELECT major, MIN(age), MAX(age) FROM student GROUP BY major;
  6. Menampilkan dosen dan banyaknya kelas yang diajar kemudian mengurutkan hasilnya
  7. jawab:
    SELECT lecturer, COUNT(name) as hitung
    FROM class
    GROUP BY lecturer
    ORDER BY hitung DESC;
  8. Menampilkan dosen dan banyaknya kelas yang diajar kemudian mengurutkan hasilnya, kemudian menampilkan dosen yang paling banyak mengajar kelas.
    jawab:
    SELECT lecturer, COUNT(name) as hitung
    FROM class
    GROUP BY lecturer
    ORDER BY hitung DESC
    LIMIT 1;
    LIMIT, berfungsi untuk membatasi output, dalam contoh ini output yang ditampilkan hanyalah baris pertama.
  9. Menampilkan dosen yang mengajar lebih dari 1 subject.
    Jawab:
    SELECT lecturer, COUNT(name) as jumlah
    FROM class
    GROUP BY lecturer
    HAVING jumlah > 1;
catatan:
  • Dalam praktikum ini saya menggunkan MySQL
  • Untuk menampilkan hasil query kita blok query yang akan dicoba kemudian tekan ctrl+enter secara bersamaan
  • Jangan ada spasi diantara fungsi agregat dan parameternya. contoh: SUM(age)
  • anda boleh menggunakan huruf besar dan kecil pada fungsi agregat, ini tidak akan mempengaruhi hasil (tidak case sensitif)
Read More..

Tulisan ini adalah catatan praktikum Basis Data yang sempat saya catat di lab, hari Selasa 22 April 2008.

SELECT * FROM class;
digunakan untuk menampilkan isi tabel class

SELECT COUNT(name) FROM CLASS;
digunakan untuk menghitung banyaknya baris dalam kolom name tabel class

SELECT COUNT(distinct name) FROM CLASS;
digunkan untuk menghitung banyaknya baris, jika ada data yang sama dalam sel yang berbeda, maka dihitung sebagai satu baris SELECT AVG(age) FROM student;
digunakan untuk menghitung rata-rata data dari kolom age, tabel student

SELECT MIN(age), MAX(age) FROM student;
digunkan untuk menampilkan nilai terkecil dan terbesar dari kolom age, tabel student

SELECT SUM(age)/ COUNT(age) FROM student;
digunakan untuk menghitung jumlah umur kemudian membaginya dengan banyaknya baris. hasil ini sama dengan Query fungsi agregat AVG diatas.

jika ada data kosong/ tidak diisi (bukan nilainya nol lho), berarti dianggap tidak ada data itu dan sel itu juga dianggap tidak ada

CONTOH KASUS:

1. Menampilkan banyaknya kelas yang diajar oleh dosen. hasilnya adalah dua tabel, tabel pertama nama dari lecturer dan tabel kedua banyaknya kelas yang diajar.
jawab:
SELECT lecturer, COUNT(name) FROM class GROUP BY lecturer;
2. Menampilkan usia minimum dan maksimum dari tiap departemen
jawab:
3. SELECT major, MIN(age), MAX(age) FROM student GROUP BY major;Menampilkan rata-rata usia mahasiswa dari tiap departemen
jawab:
SELECT major, MIN(age), MAX(age) FROM student GROUP BY major;
4. Menampilkan dosen dan banyaknya kelas yang diajar kemudian mengurutkan hasilnya
jawab:
SELECT lecturer, COUNT(name) as hitung
FROM class
GROUP BY lecturer
ORDER BY hitung DESC;
5. Menampilkan dosen dan banyaknya kelas yang diajar kemudian mengurutkan hasilnya, kemudian menampilkan dosen yang paling banyak mengajar kelas.
jawab:
SELECT lecturer, COUNT(name) as hitung
FROM class
GROUP BY lecturer
ORDER BY hitung DESC
LIMIT 1;
LIMIT, berfungsi untuk membatasi output, dalam contoh ini output yang ditampilkan hanyalah baris pertama.
6. Menampilkan dosen yang mengajar lebih dari 1 subject.
Jawab:
SELECT lecturer, COUNT(name) as jumlah
FROM class
GROUP BY lecturer
HAVING jumlah > 1;

catatan:

* Dalam praktikum ini saya menggunkan MySQL
* Untuk menampilkan hasil query kita blok query yang akan dicoba kemudian tekan ctrl+enter secara bersamaan
* Jangan ada spasi diantara fungsi agregat dan parameternya. contoh: SUM(age)
* anda boleh menggunakan huruf besar dan kecil pada fungsi agregat, ini tidak akan mempengaruhi hasil (tidak case sensitif)
Read More..

Senin, 31 Maret 2008

KONEKSI KE DATABASE

import java.sql.*;
public class MySQLDemo
{
public static void main(String[] args)
{
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
String cs = “jdbc:mysql://localhost:3306/shop?user=test&password=test”;
Connection cn = DriverManager.getConnection(cs);
String qry = “INSERT INTO Customer ”;
qry += “VALUES (null, 'Endy', 'Surabaya', 'endy@artivisi.com')”;
Statement stm = cn.createStatement();
int result = stm.executeUpdate(qry);

if (result == 0) {
System.out.println(“Insert Gagal”);
}
else
{
System.out.println(“Insert Sukses”);
}

}
catch (Exception err) {err.printStackTrace();}
}
} Read More..

Kamis, 27 Maret 2008

LINKED LIST

/* SOURCE CODE LINKED LIST
ditulis ketika praktikum STRUKTUR DATA
HIDUP ILKOM IPB*



# include
# include
# include
# include

typedef struct mahasiswa {
char nrp [10];
char nama [30];
struct mahasiswa * next;
} mahasiswa;
typedef mahasiswa *mhs;
mhs head, tail, ptr_new;


int main () {
int pilihan;
mhs cetak;
back: ;
printf ("\n 1. Cetak Linked List");
printf ("\n 2. Tambah Belakang");
printf ("\n 3. Keluar");
printf ("\n masukan pilihan: ");
scanf ("%d,", &pilihan);
switch (pilihan){
case 1:
if (head == null)
printf ("Linked List Kosong!")
else {
cetak=head;
while (cetak!=null){
printf ("Nama= %s nrp= %s", cetak -> nama, cetak -> nrp);
cetak=cetak -> next}
}
getche (), goto back;

case 2:
ptr_new=(mhs) malloc (size of (mahasiswa));
if (ptr_new==null);
printf ("\n memmory tidak cukup");
else {
printf ("\n Nama");
gets (ptr_new -> nama);
printf ("\n NRP");
gets (ptr_new -> nrp);
ptr_new -> next = null;
if (head==null)
head = ptr_new;
else
tail -> next = ptr_new;
}
tail=ptr_new;
goto back;

case 3: break;
}
}


Read More..

Rabu, 05 Desember 2007

script

/*
Name: Windu Purnomo
Copyright:
Author:
Date: 10/03/04 03:59
Description: memecah string
*/

#include
#include
main ()
{
int pos=0;
char b, kata[50];
printf ("silahkan menulis string:\n");
gets(kata);
while (kata[pos]!='\0')
{
if (kata[pos]==' ')
printf ("\n");
else
printf ("%c",kata[pos]);
pos ++;
}
getch ();
return 0;
} Read More..