SlideShare a Scribd company logo
1 of 14
PENDAHULUAN
Intruksi pengatur program berfungsi mengarahkan aliran program dan
membuat aliran tersebut daapat diubah. Perubahan aliran program biasanya
terjadi setelah pengambilan keputusan, seperti hasil intruksi CMP atau TEST
yang diikuti dengan intruksi pengatur program, termasuk intruksi jump, call,
return, interupsi dan intruksi.
Pada bab ini juga akan dipaparkan pernyataan relasional bahasa assembly
(.IF, .ELSE, .ELSEIF, .ENDIF, .WHILE, .REPEAT, .dan .UNTIL) yang ada
pada MASM atau TASM versi 6.X dan yang lebih tinggi, dengan set versi 5.X
untuk kompatibilitas MASM. Perintah relasional bahasa assembly ini membantu
programer membuat bagian aliran pengatur program dengan bahasa C/C++
secara efisien.

NEX
T
TUJUAN BAB
Usai mempelajari bab ini, anda akan mampu untuk :
1.
Menggunakan instruksi lompatan bersyarat dan tidak bersyarat untuk
mengatur
aliran program.
2. Menggunakan pernyataan rasional bahasa assembly .IF, .REPEAT, .WHILE, dan
keempatnya dalam program.
3. Menggunakan instruksi call dan returnuntuk memasukkan (push) prosedurprosedur dalam struktur program.
4. Menjelaskan sistem kerja interupsi dan intruksi pengatur inntrupsi.
5. Menggunakan instruksi pengatur mesin untuk mengubah bit flag.
6. Menggunakan ENTER dan LEAVE untuk masuk dan meninggalkan struktur
program.

NEX
T
KELOMPOK INSTRUKSI LOMPATAN (JUMP)
Instruksi pengatur program utama, jump (JMP), memungkinkan programer untuk
melompati sebuah bagian program dan bercabang ke suatu bagian memori lain menuju
instruksi selanjutnya. Sebuah lompatan bersyarat memungkinkan programer untuk membuat
keputusan berdasarkan pengetesan anggka. Hasil pengetesan angka ini disimpan dalam bit-bit
flig, yang kemudian dites sengan instruksi lompatan bersysarat. Instruksi lain yang mirip
dengan lompatan bersyarat adlah set bersyarat (Iconditional set), yang dijelaskan dengan
instruksi lompatan bersyarat pada bagian ini.
Pada bagian tulisan ini, semua instruksi lompatan digambarkan melalui penggunaannya pada
contoh program. Selain itu, akan dibahas kembali instruksi LOOP dan LOOP bersyarat, yang
telah diuraikan pada Bab 3, karena juga merupakan salah satu bentuk instruksi lompatan.

NEX
T
Opcode
Disp
EB
Opcode
Disp low

Disp high

E9
Opcode
IP Low

IP High

CS Low

CS High

EA

GAMBAR 6-1 : Tiga bentuk utama instruksi JMP. Sebagai
catatan, Disp adalah jarak atau nilai perpindahan bertanda
(signad) 8-bit atau 16-bit.

NEX
T
LOMPATAN TIDAK BERSYARAT (JMP)
Tiga jenis instruksi tidak ber syarat (lihat gambar 6-1) yang terdapat pada
mikroprosesor adalah short jump (lompatan pendek), near jump (lompatan dekat), dan far jump
(lompatan jauh).Short jump merupakan intruksi dua byte yang memungkinkan lompatan atau
percabangan atau lokasi memori yang terletak antara +127 da -128 dari alamat sumber ke
alamat yang dituju lompatan. Instruksi tiga byte near jump memungkinkan percabangan atau
lompatan dalam area ±32K byte (atau dimanasaja dibagian program) dari instruksi yang sedang
menjalankan kode program. Perlu diingat bahwa segmen secara alami bersifat siklus. Artinya,
satu lokasi diatas alamat offset FFFFH adalah alamat offset OOOOH. Dengan alasan ini, jika
anda melakukan lompatan dua nyte kedepan dalam memori dan pointer instruksi beralamat
offset FFFFH, aliran program akan berlanjut kealamat offset OOO1H. Oleh karena
itu,displacement ±32k byte memungkinkan sebuah lompatan kesembarang lokasi memori
didalam segman kode tersebut. Terakahir, adlah intruksilima byte far jump yang
memungkinkan sebuah lompatan kesembarang lokasi dalam sistem memori yang sebenarny.
Short jump dan near jump bisa disebut lompatan intrasegman , dan far jump disebut lompatan
intersegmen.

NEX
T
Gambar rangkaian short jump, near jump, dan far jump

NEX
T
TABEL 6-1 Instruksi Lompatan Bersyarat.
Bahasa Assembley

Kondisi yang Dites

Operasi

JA
JAE
JB
JBE
JC
JE atau JZ
JG
JGE
JL
JLE
JNC
JNE atau JPO
JNO
JNS
JNP atau JPO
JO
JP atau JPE
JS
JCXZ
JECXZ

Z = 0 dan C = 0
C=0
C=1
Z = 1 atau C = 1
C =1
Z=1
Z = 0 dan S = O
S=O
S <> O
Z = 1 atau S <> O
C=0
Z=0
O=0
S=0
P=0
O=1
P=1
S=1
CX = 0
ECX = 0

Lompat jika di atas
Lompat jika diatas atau sama
Lompat jika di bawah
Lompat jika di bawah atau sama
Lompat jika carry melakukan set
Lompat jika sama atau lompat jika nol
Lompat jika lebih besar
Lompat jika lebih besar atau sama
Lompat jika lebih kecil
Lompat jika lebih kecil atau sama
Lompat jika tak ada carry
Lompat jika tak sama atau lompat jika tidak nol
Lompat jika tak ada overflow
Lompast jika tak ada sign
Lompat jika tak ada paritas atau lompat jika paritas ganjil
Lompat jika overflow melakukan set
Lompat jika paritas diset atau lompat jika paritas genap
Lompat jika sign diset
Lompast jika CX adalah nol
Lompat jika ECX adalah nol

NEX
T
Contoh 6-6
; A Procedure that searches a table of 100 bytes for 0AH.
;The address, TABLE, is transferred to the procedure
;thourgh the SI register.
;
0017
0017
001A
001C
001D
001F
0020
0022
0023
0023
0024

B9 0064
B0 0A
FC
F2/AE
F9
E3 01
F8
C3

SCAN
NOT _
SCAN

PROC
MOV
MOV
CLD
REPNE
STC
JCXZ
CLC
FOUND:
RET
ENDP

NEAR
CX. 100
AL. 0AH
SCASBE
NOT_FOUND

;load count of 100
;load AL with 0AH
;select increment
;test 100 bytes for 0AH
;set carry for not found
;if not found
;clear carry if found
;return from procedure

NEX
T
Pengaturan Bit Flag Carry
 
Flag carry (c)melambangkan carry atau borrow dalam penjumlahan dan penggurangan 
multiple-word/double word. Flag ini juga menandakan kesalahan (error) dalam prosedur. 
Ada tiga intruksi yang mengatur isi flag carry: STC (set carry), CLC(clear carry),dan CMC 
(complement carry).
 
Karena flag carry jarang digunakan, kecuali pada penjumlahan dan penggurangan multipleword, maka flag tersebut digunakan untuk keperluan lain. Manfaat utama flag carry adalah 
menandai kesalahan ketika kembali dari suatu prosedur.misalkan sebuah prosedur membaca 
 
data dari file memori disk. Operasi ini dapat dilakukan dengan sukses, atau malah terjadi 
 
kesalahan seperti file-not-found. Ketika kembali dari prosedur ini, jika C=1 maka terjadi 
 
kesalahan; jika C=0 maka tidak terjadi kersalahan. Kebanyakan prosedur DOS dan BIOS 
 
 
menggunakan flag carry untuk menandai kondisi kesalahan.
 
WAIT
 
 
Instruksi wait memonitor pin BUSY pada 8086 dan 80386 dan pin TEST pada 8086/8088. 
 
nama pin ini pada mikroprosesor 8086 diubah dari TEST menjadi BUSY. Jika instruksi 
 
 
WAIT dieksekusi ketika pin BUSY = 1 maka tidak terjadi apa-apa dan instruksi berikutnya 
 
dijalankan. Jika pin BUSY = 0 ketika instruksi WAIT dieksekusi maka mikroprosesor akan 
 
 
menunggu pin BUSY kembali ke logika 1. Pin ini menandakan keadaan sibuk (busy state) 
 
ketika berada pada level logika 0.
 
 
Pin BUSY/TEST mikroprosesor biasanya dihubungkan dengan pin BUSY koprosesor 
 
numerik 8087 sampai 80387. koneksi ini membuat mikroprosesor menunggu sampai 
 
 
koprosesor menyelesaikan tugasnya. Karena koprosesor berada di dalam 80486 sampai 
 
NEX
Pentium 4, pin BUSY tidak ditemukan pada mikroprosesor jenis ini.
 
 
 

T
HLT
 
Instruksi halt (HLT) menghentikan eksekusi perangkat lunak. Ada 3 cara untuk keluar dari 
halt : melalui sebuah instruksi dengan resep perangkat keras, atau dengan operasi DMA. 
Instruksi ini biasanya muncul pada program untuk menunggu interupsi. Seringkali dibuat 
sinkronisasi antara interupsi perangkat keras dengan sistem perangkat lunak.
 
NOP
Ketika mikroprosesor menjumpai instruksi no operation (NOP) maka hanya dibutuhkan 
sedikit waktu untuk melakukan eksekusi. Pada masa awal, sebelum perangkat pengembangan 
 
perangkat lunak ada, sebuah NOP yang menjalankan no operation sering dipakai untuk 
 
memberikan ruang dalam perangkat lunak bagi instruksi bahasa mesin mendatang. Jika anda 
 
mengembangkan bahasa mesin, yang sangat jarang sekali, direkomendasikan untuk 
 
 
menempatkan 10 atau juga NOP pada program anda dalam interval 50-byte. Hal ini akan 
 
berguna ketika anda membutuhkan penambahan instruksi pada tempat tersebut di masa yang 
 
 
akan datang. NOP juga digunakan untuk aplikasi waktu tunda (time delay), yaitu untuk 
 
menghabiskan waktu. Perlu disadari bahwa NOP yang digunakan untuk pewaktuan tidak 
 
 
terlalu akurat karena cache dan pipeline pada mikroprosesor modern.
 
Prefiks LOCK
 
 
Prefiks LOCK melampiri sebuah instruksi dan menyebabkan pin LOCK berlogika 0.   Pin 
 
LOCK sering digunakan untuk menonaktifkan bus master eksternal atau komponen sistem. 
 
 
Prefiks LOCK menyebabkan pin LOCK diaktifkan selama selang waktu instruksi kuncian 
 
(locked). Jika terdapat lebih dari sebuah instruksi yang dikunci, pin LOCK akan tetap berada.
 
 
Pada logika 0 selama selang waktu urutan intruksi LOCK:MOV AL,[SI] merupakan contoh 
 
NEX
instruksi kucian.   
 
 

T
ESC
Instruksi escape (ESC) menyalurkan informasi ke koprosesor numerik 8087-pentium 4. ketika 
 
instruksi ESC dieksekusi, mikroprosesor akan menyediakan alamat memori jika dibutuhkan, 
tetapi juga tetap melaksanakan NOP. Enam bitdalam instruksi ESC menyediakan opcode ke 
koprosesor dan mulai mengeksekusi instruksi.
Opcode ESC tidak pernah terlihat dalam program sebagai ESC dan dianggap sebagai opcode 
 
yang usang. Sebagai penggantinya terdapat sekumpulan instruksi kopresesor 
(FLD,FST,FMUL dan lai-lain) yang di-assembly sebagai instruksi ESC untuk kopresesor. 
Penjelasan lebih lanjut ada pada Bab 13, yang menjelaskan koprosesor numerik 8087 
pentium 4.
 
BOUND
 
 
Instruksi BOUND dibuat pertama kali untuk mikroprosesor 80186, merupakan instruksi 
 
perbandingan yang mungkin menyebabkan interupsi (tipe vector nomor 5). Instruksi ini 
 
 
membandingkan isi memori register 16-bit atau 32-bit dengan isi memori dua word atau 
 
double word: batas atas dan bawah. Jika nilai dalam register yang dibandingkan dengan 
 
 
memori tidak berada dalam batas atas dan bawah, interupsi tipe 5 terjadi. Akan tetapi, jika 
 
nilainya masih berada dalam batas maka instruksi berikutnay dalam program akan dieksekusi.
 
 
Sebagai contoh, jika instruksi BOUND SI, DATA dieksekusi maka lokasi DATA berukuran 
 
word berisi batas bawah, dan lokasi DATA+2byte yang berukuran word berisi batas atas. Jika 
 
 
angka yang terdapat dalam SI lebih kecil dari lokasi memori DATA atau lebih besar dari 
 
lokasi memori DATA+2byte maka interupsi tipe 5 terjadi. Perlu diketahui bahwa insterupsi 
 
 
ini terjadi, alamat return menunjuk pada instruksi BOUND, bukan pada instruksi yang 
 
mengikuti BOUND. Ini berbeda dengan instruksi biasa, dimana alamat return menunjuk pada 
 
NEX
 
instruksi berikutnya dalam program.
T
 
 
ENTER dan LEAVE
 
Instruksi enter dan leave, pertama dibuat untuk mikroprosesor 80186, digunakan 
dengan frame stack, dimana mekanismenya digunakan untuk mneneruskan 
parameter pada sebuah priosedur. Frame stack menyediakan area memori dinamis 
untuk prosedur dalam lingkungan multipengguna.
 
Instruksi ENTER menciptakan sebuah frame stack dengan mem-push BP kedalam 
stack dan kemudian mengisi BP dengan alamat frame paling atas. Hal ini membuat 
frame menjadi variabel untuk di akses melalui register BP. Instruksi ENTER berisi 
 
 
dua operand; operand pertama menentukan jumlah byte yang dicadangkan untuk 
 
 
variabel pada frame stack dan operand kedua level prosedur.
 
Misalkan instruksi ENTER 8,0 dieksekusi. Instruksi ini mengalokasikan 8 byte untuk 
 
 
frame stack dan angka 0 menentukan level 0. gambar 6-9 memperlihatkan frame 
 
 
stack yang dibuat oleh instruksi ini. Perlu diketahui bahwa instruksi ini menympan 
 
BP ke stack paling atas. Kemudian, instruksi itu mengurangi stack pointer dengan 8, 
 
 
meninggalkan 8 byte ruang memori untuk penyimpanan data temporer. Lokasi paling 
 
 
atas dari 8 byte area penyimpanan temporer ini dialamati oleh BP. Instruksi LEAVE 
 
mengembalikan proses ini dengan mengsi SP dan BP dengan nilai awal mereka.
 
 
 
 
 
 
 
 
 

NEX
T
Soal
1. Berikan contoh short jump, near jump, dan far jump dengan 
menggunakan gambar rangkaiannya!
2. Buatlah contoh dari instruksi bersyarat dan buatlah satu soal dari 
instruksi set bersyarat tersebut!
 
3. Apa perbedaan antara pengaturan bit Flag Carry, Wait, HLT, NOP, 
 
 
Prefiks Lock, ECS, Bound, enter dan leave dari materi pengaturan 
 
 
mesin serta instruksi miscellaneous!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

NEX
T
TUTUP

Terima Kasih

More Related Content

Viewers also liked

Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201
Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201
Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201
Luan Balbino
 
Review Vid Template
Review Vid TemplateReview Vid Template
Review Vid Template
mydogshop
 
Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3
Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3
Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3
TS-Cunha
 
Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)
Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)
Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)
José Marques
 
Dropbox hip
Dropbox hipDropbox hip
Dropbox hip
caromt
 
Trabajo practico final posgrado
Trabajo practico final posgradoTrabajo practico final posgrado
Trabajo practico final posgrado
Olinda Figgini
 
Httpfelivega.xxyyzz25.hop.clickbank.net
Httpfelivega.xxyyzz25.hop.clickbank.netHttpfelivega.xxyyzz25.hop.clickbank.net
Httpfelivega.xxyyzz25.hop.clickbank.net
Ganardinero Rapido
 
Webquest sobre os animais
Webquest sobre os animaisWebquest sobre os animais
Webquest sobre os animais
castrohelena
 
Pesquisa Marcas Humanitárias Parte 02
Pesquisa Marcas Humanitárias Parte 02Pesquisa Marcas Humanitárias Parte 02
Pesquisa Marcas Humanitárias Parte 02
Vitor Drumond
 

Viewers also liked (20)

Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201
Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201
Instala%c3%87%c3%95 es%20el%c3%89tricas%20residenciais%20parte%201
 
2 откр.мер.моя украина
2 откр.мер.моя украина2 откр.мер.моя украина
2 откр.мер.моя украина
 
Apresentação2 042
Apresentação2 042Apresentação2 042
Apresentação2 042
 
Lusiadas Cruzeiros
Lusiadas CruzeirosLusiadas Cruzeiros
Lusiadas Cruzeiros
 
Apresenta tigre
Apresenta tigreApresenta tigre
Apresenta tigre
 
Calcium lignosulfonate msds
Calcium lignosulfonate msdsCalcium lignosulfonate msds
Calcium lignosulfonate msds
 
Review Vid Template
Review Vid TemplateReview Vid Template
Review Vid Template
 
Taller plan de trabajo biblioteca
Taller plan de trabajo bibliotecaTaller plan de trabajo biblioteca
Taller plan de trabajo biblioteca
 
Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3
Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3
Exemplo detalhamento-sanitario-banho-coletivo-aditivocad3
 
Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)
Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)
Jornal InterParoquial Cerzedelo-Gandarela (Outubro 2013)
 
Dropbox hip
Dropbox hipDropbox hip
Dropbox hip
 
Hoja de vida
Hoja de vidaHoja de vida
Hoja de vida
 
Semiconductores
SemiconductoresSemiconductores
Semiconductores
 
7circulatorio
7circulatorio7circulatorio
7circulatorio
 
Trabajo practico final posgrado
Trabajo practico final posgradoTrabajo practico final posgrado
Trabajo practico final posgrado
 
Resolução nº-1071
Resolução  nº-1071 Resolução  nº-1071
Resolução nº-1071
 
Garvey
GarveyGarvey
Garvey
 
Httpfelivega.xxyyzz25.hop.clickbank.net
Httpfelivega.xxyyzz25.hop.clickbank.netHttpfelivega.xxyyzz25.hop.clickbank.net
Httpfelivega.xxyyzz25.hop.clickbank.net
 
Webquest sobre os animais
Webquest sobre os animaisWebquest sobre os animais
Webquest sobre os animais
 
Pesquisa Marcas Humanitárias Parte 02
Pesquisa Marcas Humanitárias Parte 02Pesquisa Marcas Humanitárias Parte 02
Pesquisa Marcas Humanitárias Parte 02
 

Similar to Tk310 021016-631-23

Mari belajar assembly
Mari belajar assemblyMari belajar assembly
Mari belajar assembly
Titin Martini
 
90594412 bab-3-pengaturan-aliran-pemograman-fotran
90594412 bab-3-pengaturan-aliran-pemograman-fotran90594412 bab-3-pengaturan-aliran-pemograman-fotran
90594412 bab-3-pengaturan-aliran-pemograman-fotran
mocoz
 
Struktur perulangan dalam c++
Struktur perulangan dalam c++Struktur perulangan dalam c++
Struktur perulangan dalam c++
Alvin Setiawan
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
Dikicandra6
 
Resume praktikum
Resume praktikumResume praktikum
Resume praktikum
NuRul Emi
 

Similar to Tk310 021016-631-23 (20)

ALGORITMA PEMROGRAMAN DASAR.pptx
ALGORITMA PEMROGRAMAN DASAR.pptxALGORITMA PEMROGRAMAN DASAR.pptx
ALGORITMA PEMROGRAMAN DASAR.pptx
 
Mari belajar assembly
Mari belajar assemblyMari belajar assembly
Mari belajar assembly
 
Menerapkan struktur kontrol perulangan dalam bahasa pemrograman.
Menerapkan struktur kontrol perulangan dalam bahasa pemrograman.Menerapkan struktur kontrol perulangan dalam bahasa pemrograman.
Menerapkan struktur kontrol perulangan dalam bahasa pemrograman.
 
stuktur algoritma.pptx
stuktur algoritma.pptxstuktur algoritma.pptx
stuktur algoritma.pptx
 
Looping Algoritma
Looping AlgoritmaLooping Algoritma
Looping Algoritma
 
Tutor Tasm2
Tutor Tasm2Tutor Tasm2
Tutor Tasm2
 
Jobsheet 4 LOOPING( PENGULANGAN)
Jobsheet 4 LOOPING( PENGULANGAN)Jobsheet 4 LOOPING( PENGULANGAN)
Jobsheet 4 LOOPING( PENGULANGAN)
 
Dasar dasar algoritma - 2
Dasar dasar algoritma - 2Dasar dasar algoritma - 2
Dasar dasar algoritma - 2
 
Algoritma&Pemrograman C++ Pertemuan 1
Algoritma&Pemrograman C++ Pertemuan 1Algoritma&Pemrograman C++ Pertemuan 1
Algoritma&Pemrograman C++ Pertemuan 1
 
PowerPoint - Set Instruksi dan Teknik Pengalamatan
PowerPoint - Set Instruksi dan Teknik PengalamatanPowerPoint - Set Instruksi dan Teknik Pengalamatan
PowerPoint - Set Instruksi dan Teknik Pengalamatan
 
Algoritma pemrograman
Algoritma pemrogramanAlgoritma pemrograman
Algoritma pemrograman
 
Pertemuan iv
Pertemuan ivPertemuan iv
Pertemuan iv
 
for end.pdf
for end.pdffor end.pdf
for end.pdf
 
Bab 3
Bab 3Bab 3
Bab 3
 
90594412 bab-3-pengaturan-aliran-pemograman-fotran
90594412 bab-3-pengaturan-aliran-pemograman-fotran90594412 bab-3-pengaturan-aliran-pemograman-fotran
90594412 bab-3-pengaturan-aliran-pemograman-fotran
 
chapter-11 Visual Basic 04.ppt
chapter-11 Visual Basic 04.pptchapter-11 Visual Basic 04.ppt
chapter-11 Visual Basic 04.ppt
 
Struktur perulangan dalam c++
Struktur perulangan dalam c++Struktur perulangan dalam c++
Struktur perulangan dalam c++
 
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docxMAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
MAKALAH PERULANGAN BAHASA C ( Diki Candra ).docx
 
Modul praktikum instruksi dasar
Modul praktikum instruksi dasarModul praktikum instruksi dasar
Modul praktikum instruksi dasar
 
Resume praktikum
Resume praktikumResume praktikum
Resume praktikum
 

Tk310 021016-631-23