Desember 26, 2011

bla bla bla bla osk 3

LISTING PROGRAM KE 1
.model small
.code
org 100h
Ø  model small digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program.code digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini.org 100h digunakan untuk memberitahukan assembler supaya program pada saat dijalankan (diload ke memory) diletakkan mulai pada offset  ke 100h(256) byte.
mulai:
jmp proses                                  
kal db 13,10,'input your password : $'
kal2 db 10,'selamat datang dipraktikum OSK !!!$'
Ø  jmp digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. Nilai yang akan diproses adalah A dan B. DB (Define Byte), mendefinisikan variable per byte. Dalam kal db terdapat 13,10 berguna sebagai diagonal.
proses :
mov ah,09h
lea dx, kal
int 21h
mov ah,07h
int 21h
cmp al,'2'
je pilihan1
je proses
int 20h
Ø  mov ah,09h dan mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. lea dx,kal berguna untuk mengambil variabel yang berada di kal yaitu “ input  your password”.Int 21h berguna untuk membaca  variabel yang akan dicetak. Cmp al,’2’ berguna untuk menampung nilai. Je pilihan1 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan1:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'i'
je pilihan2
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’i’ berguna untuk menampung nilai. Je pilihan2 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan2:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'a'
je pilihan3
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’a’ berguna untuk menampung nilai. Je pilihan3 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan3:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'2'
je pilihan4
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’2’ berguna untuk menampung nilai. Je pilihan4 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan4:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'1'
je pilihan5
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’1’ berguna untuk menampung nilai. Je pilihan5 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan5:
mov ah,02h
mov dl,'*'
int 21h
mov ah,09h
lea dx,kal2
int 21h
int 20h
end mulai
cmp al,'i'
je pilihan2
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,09h berguna untuk menampung semua variabel yang akan dicetak. lea dx,kal2 berguna untuk mengambil variabel yang berada di kal yaitu “ selamat datang di praktikum OSK !!!”. Cmp al,’i’ berguna untuk menampung nilai. Je pilihan1 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS. Kemudian program tersebut selesai dan kembali ke proses pilihan2.
LISTING PROGRAM KE 2
.model small
.code
org 100h
Ø  model small digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program.code digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini.org 100h digunakan untuk memberitahukan assembler supaya program pada saat dijalankan (diload ke memory) diletakkan mulai pada offset  ke 100h(256) byte.
TData:
JMP proses
kar DB ?
klm DB 'BATMAN SI MANUSIA KELELAWAR'
Ø  jmp digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. Nilai yang akan diproses adalah A dan B. DB (Define Byte), mendefinisikan variable per byte.
proses:
mov cx,28
xor bx,bx
Ø  Fungsi Melakukan operasi logika Exlusive OR antara Operand1 dengan Operand2. Perintah XOR ini juga sering dipakai untuk me-nol-kan suatu register dengan cara XOR Operand1, Operand1. XOR BX, BX ;Berfungsi untuk me-nol-kan nilai BX ( BX = 0 ).
ulang:
mov dl,klm[bx]
mov kar,dl
call cetak_kar
inc bx
loop ulang
int 20h
Ø  mov dl,klm[bx] berfungsi membuat tulisan terbalik yang bernilai bx. Kemudian melakukan panggilan ke cetak kar. Inc bx untuk menaikan nilai bx. Lalu melakukan pengulangan. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
cetak_kar proc near
                        push ax
                        push dx
                        mov ah,02h
                        mov dl,kar
                        int 21h
                        pop dx
                        pop ax
                        ret
                        cetak_kar endp
                        end TData
push berguna untuk memasukkan nilai ax dan dx. Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,kar berfungsi untuk mencetak nilai bx yang terbalik.Int 21h berguna untuk membaca  variabel yang akan dicetak. Kemudian pop menghapus nilai dari dx dan ax. Lalu mereturn kembali untuk mengecek kembali. Cetak_kar endp dan end TData menandakan bahwa program tersebut telah selesai atau berhenti

Desember 08, 2011

LOGIKA PROGRAM ORSISKOM PERT 2

LISTING PROGRAM KE-1
.model small
.code
org 100h
Ø  model small digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program.code digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini.org 100h digunakan untuk memberitahukan assembler supaya program pada saat dijalankan (diload ke memory) diletakkan mulai pada offset  ke 100h(256) byte.
ledi: jmp proses
nilA db 55
nilB db 45
Ø  jmp digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. Nilai yang akan diproses adalah A dan B. DB (Define Byte), mendefinisikan variable per byte.
kat0 db'nilai A lebih kecil dari nilai B $'
kat1 db'nilai A sama dengan nilai B $'
kat2 db'nilai A lebih besar nilai B $'
Ø  kat adalah tempat untuk menyimpan keterangan variabel yang akan digunakan.
proses :
mov al,nilA
cmp al,nilB
Ø  mov al,nilA berguna untuk menyimpan variabel yang bermuatan 8bit. Cmp al,nilB digunakan untuk membandingkan 2 buah operand dengan syntax.
Akecil:
lea dx,kat0
jmp cetak
Ø  lea dx,kat0 berguna untuk mengambil variabel yang berada di kat0 yaitu “nilai A lebih kecil dari nilai B”. Jmp cetak berguna untuk melompat ke perintah jump yaitu ke perintah cetak
sama:
lea dx,kat1
jmp cetak
Ø  lea dx,kat0 berguna untuk mengambil variabel yang berada di kat0 yaitu “nilai A sama dengan nilai B”. Jmp cetak berguna untuk melompat ke perintah jump yaitu ke perintah cetak
Abesar:
lea dx,kat2
jmp cetak
Ø  lea dx,kat0 berguna untuk mengambil variabel yang berada di kat0 yaitu “nilai A lebih besar nilai B”. Jmp cetak berguna untuk melompat ke perintah jump yaitu ke perintah cetak
cetak:
mov ah,09
int 21h
exit: int 20h
end ledi
Ø  mov ah,09 berguna untuk menampung semua variabel yang akan dicetak. Int 21h berguna untuk membaca  variabel yang akan dicetak. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.





LOGIKA PROGRAM KE-2
.MODEL SMALL
.CODE
ORG 100h
Ø  model small digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program.code digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini.org 100h digunakan untuk memberitahukan assembler supaya program pada saat dijalankan (diload ke memory) diletakkan mulai pada offset  ke 100h(256) byte.
proses:
mov ah,02
mov dl,'A'
mov cx,26
Ø  Mov ah,02 berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,02 berguna untuk menampung variabel yang di mulai dari huruf A. Mov cx,26 berguna untuk mengurutkan variabel yang tadi di simpan.
ulang:
int 21h
inc dl
loop ulang

int 20h
end proses
Ø  int 21h berguna untuk membaca variabel yang tadi di simpan. Inc dl berguna untuk Nilai pada register/variabel akan ditambah dengan 1, seperti perintah A = A + 1. Kemudian melakukan perulangan dari variabel tersebut. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.







LOGIKA PROGRAM KE-3
.model small
.code
org 100h
Ø  model small digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program.code digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini.org 100h digunakan untuk memberitahukan assembler supaya program pada saat dijalankan (diload ke memory) diletakkan mulai pada offset  ke 100h(256) byte.

proses:
mov ah,02h
mov dl,'2'
mov cx,6
Ø  Mov ah,02 berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,02 berguna untuk menampung variabel yang di mulai dari angka 2. Mov cx,26 berguna untuk mengurutkan variabel yang tadi di simpan.
ulang:
int 21h
inc dl
loop ulang
int 20h
end proses
Ø  int 21h berguna untuk membaca variabel yang tadi di simpan. Inc dl berguna untuk Nilai pada register/variabel akan ditambah dengan 1, seperti perintah A = A + 1. Kemudian melakukan perulangan dari variabel tersebut. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.


LOGIKA PROGRAM AP3 PERT 4

Logika program
Ini adalah program penjumlahan matriks menggunakan COBOL. Pada program ini
kita juga akan menggunakan bentuk table di dalamnya. Pembuatan table menggunakan
perintah occurs yang dimuat dalam working-storage section.
IDENTIFICATION DIVISION.
PROGRAM-ID. MATRIKS.
ENVIRONMENT DIVISION.
Pada awal program cobol adalah suatu kewajiban untuk membuat divisi – divisi yang
Nampak seperti di atas.
DATA DIVISION.
WORKING-STORAGE SECTION.
77I PIC 99.
77J PIC 99.
Pada bagian data division yaitu pada working-storage section kita deklarasikan dahulu
variabel yang sifatnya berdiri sendiri, yaitu variabel I dan J, dengan nilai numeriknsebanyak
2 digit angka.
01 CETAK.
02 M1 PIC Z9.
02 M2 PIC Z9.
02 T PIC Z9.
Kemudian kita buat satu record bernama cetak, dengan item di dalamnya adalah variabel
m1, m2, dan t.
01 TOTAL.
02 TOTAL-BARIS OCCURS 2 TIMES.
03 TM OCCURS 2 TIMES PIC 999.
01 DATA1.
02 BARIS1 OCCURS 2 TIMES.
03 MATRIK1 OCCURS 2 TIMES PIC 99.
01 DATA2.
02 BARIS2 OCCURS 2 TIMES.
03 MATRIK2 OCCURS 2 TIMES PIC 99.
perintah di atas digunakan untuk membuat variabel larik atau array. Ada 3 variabel array
yang dibuat di sana, yaitu TM, matrik1, dan matrik2. Ketiga variabel itu mempunyai panjang
baris dan kolom yang sama, yaitu 2.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
01 TANDA.
02 LINE 3 COLUMN 16 VALUE '+' HIGHLIGHT.
02 LINE 3 COLUMN 31 VALUE '=' HIGHLIGHT.
Pada bagian screen section kita membuat perintah untuk membersihkan layar
menggunakan perintah blank screen, dan akan menampilkan symbol juga nantinya saat
program dijalankan. Yaitu symbol + , dan =. Yang letaknya pada baris ke 3, dan kolom ke
16, dan 31.
Pada awal bagian procedure division terdapat paragraph mulai, paragraph mulai akan kita
bahas nanti, pertama kita akan membahas tentang paragraph untuk memasukkan nilai
matriksnya.
ISI1.
DISPLAY (3, 2) 'MATRIK 1'.
COMPUTE LIN = LIN + 1.
DISPLAY (LIN, 2) 'ELEMEN [', I, ', ', J, '] = '.
ACCEPT MATRIK1 (I, J).
ISI2.
DISPLAY (10, 2) 'MATRIK 2'.
COMPUTE LIN = LIN + 1.
DISPLAY (LIN, 2) 'ELEMEN [', I, ', ', J, '] = '.
ACCEPT MATRIK2 (I, J).
Ada dua paragraph, isi1, dan isi2. Kedua paragraph tersebut digunakan untuk perintah
pemasukan nilai ke dalam variabel array yang telah dibuat. LIN di atas berguna untuk
menentukan posisi pencetakan kata elemen [i,j]. nilai pada variabel lin akan bertambah
sesuai dengan jumlah perulangan yang nantinya dilakukan.
MULAI.
MOVE 3 TO LIN.
DISPLAY HAPUS-LAYAR.
PERFORM ISI1
VARYING I FROM 1 BY 1 UNTIL I > 2
AFTER J FROM 1 BY 1 UNTIL J > 2
COMPUTE LIN = 10.
PERFORM ISI2
VARYING I FROM 1 BY 1 UNTIL I > 2
AFTER J FROM 1 BY 1 UNTIL J > 2
Pada awal paragraph mulai kita memberikan nilai awal 3 ke dalam variabel LIN. Kemudian
akan dipanggil paragraph ISI1 dengan dilakukan perulangan untuk penginputan nilainya.
Dilakukan 2 kali perulangan pertama untuk baris, lalu kolom. Batas yang diberikan sampai
nilai I, dan j lebih dari 2, jika nilainya melebihi 2, maka perulangan akan terhenti.
PROSES.
COMPUTE TM (I, J) = MATRIK1 (I, J) + MATRIK2 (I, J).
Pada paragraph proses dilakukan perhitungan untuk menjumlahkan matriks. Lalu paragraph
ini akan dipanggil nantinya.
PERFORM PROSES
VARYING I FROM 1 BY 1 UNTIL I > 2
AFTER J FROM 1 BY 1 UNTIL J > 2
Dilakukan perintah perulangan juga untuk menjumlahkan nilai pada variabel mtriks1, dan
matriks2. Dilakukan proses ini karena agar mempermudah proses penjumlahan, karena
yang akan dijumlahkan adalah nilai – nilai yang ada pada variabel array.
HASIL.
MOVE I TO LIN.
MOVE J TO COL.
MOVE MATRIK1 (I, J) TO M1.
MOVE MATRIK2 (I, J) TO M2.
MOVE TM (I, J) TO T.
COMPUTE LIN = LIN * 2.
COMPUTE COL = COL * 4.
DISPLAY (LIN, COL + 1) M1.
DISPLAY (LIN, COL + 16) M2.
DISPLAY (LIN, COL + 31) T.
Nilai pada variabel I dipindahkan ke variabel LIN, dan J ke dalam COL. Dan juga nilai pada
variabel matrik1 ke m1, dan juga m2. Dan total matriks pada variabel TM dipindahkan ke T.
perhitungan LIN, dan COL dilakukan untuk pengaturan letak tampilan hasil nantinya.
Dimana letaknya sudah diatur dalam paragraph ini.
DISPLAY HAPUS-LAYAR.
DISPLAY TANDA.
PERFORM HASIL
VARYING I FROM 1 BY 1 UNTIL I > 2
AFTER J FROM 1 BY 1 UNTIL J > 2
Saat nilai matriks sudah diisi semua, maka tampilannya akan terhapus dan digantikan
dengan tampilan pada paragraph hasil, dan juga tampilan symbol yang telah dibuat pada
screen section tadi. Pada paragraph hasil perulangan dilakukan sebanyak 2 kali untuk
mencetak nilai – nilai matriks pada masing – masing variabel, dan juga untuk mencetak
hasilnya juga.

LOGIKA PROGRAM AP3 PERT 8

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
Ø  Pendeklarasian prorotype yang digunakan dalam program yang akan dibuat. Include digunakan untuk membuat library dalam program.
void main(){
struct mhs{
                char npm[9];
                char nama[25];
                char alamat[30];
                int nilai;}
Ø  Pendeklarasian variabel yang digunakan dalam program yang dibuat yang berupa array  dengan tipe data yang digunakan adalah char dan variabel nilai dengan tipe data integer.
            pmhs[10];
                int i,n;
                clrscr();
                printf("PROGRAM DATA MAHASISWA \n");
                printf("---------------------- \n\n");
                printf("Masukkan Banyaknya Data : ");
                scanf("%d",&n);
                printf("\n");
Ø  Digunakan untuk menginputkan banyaknya data mahasiswa yang ingin kita inputkan dengan batasan data maksimal 10.
            for (i=0; i<n; i++)  {
                                printf("Input Data Mahasiswa Ke-%d\n",i+1);
                                printf("Nama Anda                              : ");
                                scanf("%s",&pmhs[i].nama);
                                printf("NPM Anda                                : ");
                                scanf("%s",&pmhs[i].npm);
                                printf("Alamat Anda                            : ");
                                scanf("%s",&pmhs[i].alamat);
                                printf("Nilai Anda                 : ");
                                scanf("%d",&pmhs[i].nilai);
                                printf("\n\n");       }
Ø  Dengan menggunakan pengulangan for, penginputan data-data mahasiswa akan terus berulang sampai sama dengan banyak data yang kita inputkan tadi. Untuk menginputkan nama, npm dan alamat dalam penginputan datanya digunakan tipe data string, sedangkan untuk nilai menggunakan tipe data desimal untuk menginputkan datanya.
            printf("Tekan Sembarang tombol ... !");
                getch();
                clrscr();
                printf("   Output Data Mahasiswa \n\n");
                printf("====================================================== \n");
                printf("No.             Nama           NPM         Alamat         Nilai \n");
                printf("====================================================== \n");
Ø  Listing diatas akan menampilkan perintah untuk menekan sembarang tombol maka akan muncul output data yang telah diinputkan dengan tampilan seperti diatas.
            for (i=0; i<n; i++)  {
                                gotoxy(2, i+6); printf("%d.",i+1);
                                gotoxy(7, i+6); printf("%s",pmhs[i].nama);
                                gotoxy(22, i+6); printf("%s",pmhs[i].npm);
                                gotoxy(33, i+6); printf("%s",pmhs[i].alamat);
                                gotoxy(53, i+6); printf("%d\n",pmhs[i].nilai); }
                printf("====================================================== \n");
                getch();}
Ø  For digunakan untuk melakukan pengulangan dalam mencetak hasil output dari data-data yang sudah ada. Perintah gotoxy digunakan untuk menentukan posisi dari field-field yang ada seperti nama, npm, alamat dan nilai. Maka output program akan seperti di bawah ini.