LANGUAGE SOFTWARE - ASSEMBLER

BAGIKAN:

Assembler merupakan program yang digunakan untuk menterjemahkan program aplikasi yang ditulis dengan bahasa perakit (assembly language) atau bahasa pe

LANGUAGE SOFTWARE - ASSEMBLER
Gambar oleh Thanks for your Like • donations welcome dari Pixabay

Language Software - Assembler - Assembler merupakan program yang digunakan untuk menterjemahkan program aplikasi yang ditulis dengan bahasa perakit (assembly language) atau bahasa pemrograman simbolik (symbolic programming language) menjadi bahasa mesin. Dengan bahasa simbolik, masing-masing op-code dalam bahasa mesin tidak ditulis dengan bentuk bilangan binari, tetapi dengan suatu kode simbolik singkatan tertentu yang disebut dengan mnemonic. Instruksi program yang ditulis dengna mnemonic akan diterjemahkan ke dalam bentuk bilangan binari bahasa mesin dengna menggunakan assembler. Program yang ditulis dengan bahasa simbolik tersebut disebut dengan source program (program sumber) dan hasil penterjemahan ke dalam bahasa mesin disebut dengan object program (program obyek).

Berikut ini akan diberikan suatu contoh program dalam bahasa assembly yang sederhana untuk menunjukkan bagaimanakah suatu program assembly tersebut ditulis. Program ini dimaksudkan untuk mencetak suatu teks atau tulisan karakter string SAYA KOMPUTER di layar terminal, menggunakan Microsoft Macro Asembler pada komputer IBM PC, sebagai berikut:

COMMENT *
       Cetak tulisan SAYA KOMPUTER di layar
       dengan nama executable program CONTOH1.COM *
kode              SEGMENT
                  ASSUME       CS : kode,     DS : kode 

mulai:
                  ;tampilkan tulisan
                  MOV       AH, 9;fungsi       DOS
                  MOV       DX, OFFSET tulisan ; isi tulisan di DX 
                  INT       21h      
                  20h                          ; selesai

tulisan           DB        'saya komputer$'

kode              ENDS
                  END       mulai 

Struktur dari source program dalam bahasa assembly seperti tampak pada program diatas adalah tiap-tiap instruksi program dapat dibentuk dalam urutan 4 kolom sebagai berikut:
label       operasi        operand       komentar
Label merupakan suatu simbol, dapat berupa suatu tanda yang menunjukkan nama dari segment, offset atau type. label juga dapat digunakan untuk arah loncatan dari suatu instruksi. Nama dari label ini bebas dan boleh ada serta boleh tidak ada dalam suatu instruksi.

Operasi merupakan suatu simbol mnemonic yang dapat berupa suatu kode dari operasi instruksi assembler (disebut dengan operation code atau op-code) atau dapat berupa suatu pseudo operation (pseudo-op atau assembler directivei). Operasi ini harus ada.

Operand merupakan satu atau lebih operand yang membentuk suatu ekspresi penyedia informasi yang dibutuhkan oleh operasi untuk melakukan fungsinya. Operand bisa ada dan bisa tidak ada tergantung dari instruksinya.

Komentar digunakan untuk memperjelas atau untuk memberi keterangan pada instruksi-instruksi program. Komentar ini didahului dengna tanda semicolon (;). Komentar boleh ada dan boleh tidak ada.

Penulisan label, operasi, operand atau pun komentar bebas disegala posisi kolom dari program, tidak terikat di kolom tertentu.

Pada contoh program:
  1. COMMENT merupakan suatu pseudo-op yang dapat digunakan untuk memberi keterangan atau komentar dari program.
    Format dari pseudo-op COMMENT adalah sebagai berikut:
    COMMENT pembatas komentar pembatas 
    Pembatas dapat digunakan karakter apa pun (dalam contoh digunakan karakter *) dan komentar ditulis diantara pembatas.

    COMMENT (pseudo-op) * (pembatas awal)
           Cetak tulisan SAYA KOMPUTER di layar
           dengan nama executable program CONTOH1.COM (komentar) *
    (pembatas akhir)
  2. SEGMENT merupakan pseudo-op yang menunjukkan segment main memory letak dari instruksi dan data program assembly.
    SEGMENT didahului dengan label yang menunjukkan nama dari segmentnya.

    nama segmen SEGMENT






    nama-segment ENDS

    Pada contoh program, nama dari segment adalah kode (tidak harus kode, tetapi bisa nama yang lainnya, karena merupakan suatu label).
  3. ASSUME merupakan pseudo-op yang menunjukkan kepada assembler letak dari segment untuk segment register. Pada contoh program, segment register yang dipergunakan adalah CS dan DS. Register CS (code segment) menunjukkan segment letak dari kode instruksi, sedang register DS (Data segment) menunjukkan segment letak dari data.
    Bentuk instruksi dari contoh program sebagai berikut:

    ASSUME CS : kode, DS : kode


    menunjukkan instruksi dan terletak pada segment yang sama.
     
  4. ORG merupakan pseudo-op yang menunjukkan letak awal dari alamat memori dalam suatu segment. Bentuk instruksi sebagai berikut:

    ORG 100h


    menunjukkan instruksi akan diletakkan mulai dari alamat memori 100 hexadesimal (125 desimal) pada segment kode. Hal ini perlu untuk executable program yang mempunyai extension .COM, yang umumnya diletakkan pada alamat memori 100h di segment. Sebenarnya, hasil dari executable program dapat berbentuk extension .COM ataupun .EXE. Executable program dengan extension M lebih kecil dan dapat diambil lebih cepat dibandingkan dengan extension . EXE, sehingga contoh pada artikel ini digunakan yang ber-extension .COM. Executable progrma dengan extension .COM selain mempunyai keuntungan dibandingkan dengan yang ber-extension .EXE, tetapi juga mempunyai kelemahan, yaitu maksimal sebesar 64 KB, sehingga hanya dapat menggunakan sebuah segment saja (karena satu segment untuk IBM PC sebesar 64 KB). Oleh karena itu, isntruksi dan data tidak dapat diletakkan pada segment yang terpisah (akan lebih besar dari 64 KB), harus dalam satu segment yang sama (ditunjukkan pada pseudco-op ASSUME).
  5. MULAI: merupakan label yang menunjukkan awal dari instruksi-instruksi yang akan diproses.
  6. MOV  merupakan op-code yang digunakan untuk memindahkan suatu nilai ke suatu lokasi. Format dari op-code MOV adalah sebagai berikut:

    MOV tujuan,sumber

    Bentuk instruksi sebagai berikut:

    MOV AH,9 ;fungsi DOS

    berarti register AH diisi dengan nilai data 9. Mengapa register AH harus diisi dengan nilai tersebut? Tentunya hal ini mempunyai maksud yang tertentu. Untuk menampilkan suatu bentuk karakter string di layar terminal, assembler tidak menyediakan suatu instruksi yang khusus, tetapi dapat dilakukan dengan menggunakan fasilitas dari DOS. Fasilitas dari DOS dapat diaktifkan dengan menggunakan op-code INT (interrupt). Salah satu interrupt DOS yang pentung adalah dengan memberikan nilai 21 hexadesimal, yang menyediakan beberapa fungsi operasi yang sangat berguna. Untuk menggunakan fungsi ini, suatu nilai fungsi tertentu harus diletakkan di register AH. Adapun nilai-nilai fungsi tersebut adalah tampak pada tabel berikut ini:

    Tabel Fungsi dari Interrupt DOS 21 Hexadesimal

    Nilai Register AH         Fungsi yang diberikan
    1 input dari keyboard
    2 menampilkan karakter
    3 input dari serial-port
    4 output ke serial-port
    5 output ke printer
    6 input atau output langsung
    7 input ditampilkan tanpa pengecekan Ctrl-Break
    8 input dari keyboard tanpa ditampilkan
    9 menampilkan karakter string
    A buffer keyboard
    B status dari input
    25 mnengganti vektor interrupt
    2A mengambil tanggal sistem
    2B merubah tanggal sistem
    2C mengambil jam sistem
    2D merubah jam sistem
    30 mengambil nomor versi DOS
    31 menghentikan proses program, tetapi masih di memori
    35 mengambil vektor interrupt
    36 mengambil parameter disk
    3C membuat file
    3D membuka file
    3E menutup file
    3F membaca file atau peralatan lain
    40 menulis di file atau peralatan lain
    41 menghapus file
    43 attribut dari file
    4A merubah alokasi memori
    4B mengambil dan memproses program dari disk
    4C menghentikan proses program
    4D menentukan kode kesalahan
    56 mengganti nama file
    57 mengambil dan merubah tanggal dan jam file

    Tampak pada tabel, untuk menampilkan di layar terminal suatu karakter string, maka nilai fungsi 9 harus diletakkan di register AH. Sebelum dilakukan interupt terhadap DOS, maka register DX (data register) diisi terlebih dahulu dengan data karakter string yang akan ditampilkan, dilakukan dengan op-code sebagai berikut:

    MOV DX, OFFSET tuliskan       ;isi tulisan di DX
    Instruksi tersebut menunjukkan register DX akan diisi dengan nilai yang ada di label yan ditunjukkan oleh operator OFFSET, yaitu nilai di nama label tulisan. Pada baris di nama label tulisan, terdapat pseudo-op DB (Define Byte) yang digunakan untuk mendefinisikan suatu nilai. Kalau nilai yang didefinisikan berupa string, maka diakhiri dengan tanda dollar ($), sebagai berikut:


    tulisan       DB       'SAYA KOMPUTER$'
  7.  INT merupakan op-code yang digunakan untuk melakukan iterupt terhadap DOS atau BIOS untuk melakukan operasi yang tertentu. Interupt terhadap DOS dengan nilai 21 hexadesimal akan menyebabkan DOS melakukan suatu operasi tergantung dari nilai yang ada di register AH. Register AH bernilai 9, maka dengan instruksi:

    INT 21h

    akan menyebabkan DOS menampilkan karakter string yang ada di register DX. Sedang interupt DOS 20 hexadesimal digunakan untuk menghentikan executable program yang terbentuk extension .COM. Bila executable program menggunakan extension .EXE, maka untuk menghentikan proses program dapat dilakuakn dengan mengisi register AH dengan nilai 4C dan dilakukan interupt DOS 21 hexadesimal (lihat tabel).
Langka-langkah berikut ini menjelaskan cara pembuatan source program dalam bahasa assembly sampai menjadi executable program dengan extension .COM, sebagai berikut:
  1. Membuat source program.
    Source program
    dibuat dengan menggunakan service yang disediakan oleh OS, yaitu text editor atau dapat menggunakan program paket pengolah kata. Pada komputer IBM PC dengan operating sistem PC-DOS atau MS-DOS, text editor disimpan di disk dengan nama filenya EDLIN.COM. Pertama kali dalam bentuk prompt A> (dalam keadaan sistem operasi MS-DOS atau PC-DOS), anda tuliskan nama dari text editor yang akan dipergunakan, yaitu EDLIN (.COM tidak perlu dituliskan), diikuti oleh nama file source program dan penekanan tombol RETURN sebagai berikut:

    A>edlin b:contoh1.asm

    Anda ketik dan tekan tombol RETURN untuk menggunakan text editor EDLIN.COM guna membuat source program dengan nama file CONTOH1.ASM (extension .ASM menunjukkan file berisi source program assembly) di drive B:

    Berikutnya akan tampak di layar:

    New file
    *

    Bentuk ini menunjukkan belum pernah ada file dengan nama CONTOH1.ASM di drive B:. Kalau sudah pernah ada filenya, maka berarti akan memodifikasi isi dari file tersebut. Tanda * menunjukkan EDLIN siap menerima perintah. Anda ingin menulis teks baris per baris, maka tekan tombol 1 diikuti dengan penekanan tombol RETURN.

    A>edlin b:contoh1.asm
    New file
    *i

    Tekan tombol I dan tombol RETURN untuk memulai menulis teks.1:*
    Tanda 1:* Menunjukkan teks baris pertama siap ditulis. Setiap barus teks yang sudah ditulis, diakhiri dengan penekanan tombol RETURN. Jadi bila teks baris pertama telah selesai ditulis dan telah ditekan tombol RETURN, maka teks baris ke 2 siap untuk ditulis.A>edlin b:contoh1.asm
    New file
    *i

    1: *COMMENT *Teks baris pertama yang sudah ditulis, diakhiri dengan penekanan tombol RETURN.2:*Teks baris kedua siap untuk ditulis.

    Anda ketik source program assembly tersebut barus demi baris dengan menggunakan EDLIN, sampai baris yang terakhir sebagai berikut:

    1:*COMMENT *
    2:*      Cetak tulisan SAYA KOMPUTER di layar
    3:*      dengan nama executable program CONTOH1.COM *
    4:*
    5:*kode      SEGMENT
    6:*          ASSUME  CS:kod, DS:kode
    7:*          ORG     199h
    8:*
    9:*mulai:
    10:      ;tampilkan tulisan
    11:*            MOV   AH,9                ;fungsi DOS
    12:*            MOVE  DX, OFFSET tulisan  ;isi tulisan di DX
    13:*            INT   21h
    14:*            INT   20h                 ;selesai
    15:*
    16:*tulisan     DB    'SAYA KOMPUTER$'
    17:*
    18:*kode        ENDS  mulai
    19:*
    20:*^C

    Penekanan tombol CTRL dan tombol C (^C atau CTRL-C) atau CTRL-Z berarti mengakhiri penulisan teks.

    *e
    Perintah e (penekanan tombol e diikuti oleh  penekanan tombol RETURN) berarti end, selesai menggunakan EDLIN, merekam teks ke fule dan kembali ke prompt.

    A>

    Hasil penulisan source program ini akan direkam di file CONTOH1.ASM di drive B:

  2. Membuat source program menjadi object program.
    Source program
    perlu diterjamahkan ke bahasa mesin menjadi object program. Untuk keperluan ini, maka dapat dipergunakan program assembler, sebagai berikut:

    Disamping akan dihasilkan object program, pada proses ini bila terjadi kesalahan di dalam penulisan source program, juga akan ditampilkan daftar dari kesalahan-kesalahannya. Dari daftar kesalahan yang terjadi, source program harus dibetulkan terlebih dahulu, dapat menggunakan text editor EDLIN dan proses ini diulangi kembali sampai source program bebas dari kesalahan-kesalahan. Proses ini dapat dilakukan dengan cara ketiklah MASM atau ASM diikuti dengna penekanan tombol RETURN pada keadaan promp A> sebagai berikut:

    A>MASM

    mengambil assembler yang ada di disk (dengan nama MASM.EXE) ke main memory untuk dipergunakan.

    Maka akan tampak:

    Microsoft (R) Macro Assembler Version 4.00
    Copyright (C) Microsoft Corp 1981, 1983, 1984, 1985. All rights reserved

    Source filename   [.ASM] : b:contoh1
    nama dari source progrma (anda ketikkan)

    Object filename   [CONTOH.OBJ]: B:contoh1
    nama dari object program yang diinginkan (anda ketikkan)

    Source listing    [NUL.LST]:
    nama dari listing program yang diinginkan (kalau tidak dibutuhkan langsung tekan tombol RETURN)

    Cross-reference   [NUL.CRF]
    nama dari cross reference file yan diinginkan (kalau tidak dibutuhkan langsung tekan tombol RETURN)


    50986 Bytes symbol space free

    0 Warning Errors
    tidak ada kesalahan yang fatal dari source program

    0 Severe Errors
    tidak ada kesalahan yang ringan dari source program

    Hasil dari proses ini didapatkan object program yang disimpan di drive B: dengan nama file CONTOH1.OBJ.

  3. Membuat object program menjadi executable program.
    Object program
    masih belum dapat dijalankan. Supaya dapat dijalankan harus berupa executable program. Untuk membuat menjadi executable program dari object program dapat digunakan program service yang disediakan oleh OS, yaitu linkage editor atau linker, sebagai berikut:

    Pada PC-DOS atau MS-DOS, program linker ini disimpan di disk dengna nama file LINK.EXE, sehingga untuk menggunakannya, dapat dipanggil dalam keadaan promp A> sebagai berikut:

    A>LINK
    memanggil progrma linker (dengan nama filenya LINK.EXE) dari disk ke main memory untuk dipergunakan.

    Dan akan tampak:
    Microsoft (R) Macro Assembler Version 4.00
    Copyright (C) Microsoft Corp 1981, 1983, 1984, 1985. All rights reserved

    Object Modules [.OBJ] : b:contoh1
    nama dari object program (anda ketikkan)

    Run File [CONTOH1.EXE] : b:contoh1
    nama dari executable program yang diinginkan (anda ketikkan)

    List File [NUL.MAP] :
    nama dari file map yang diinginkan (kalau tidak dibutuhkan langsung tekan tombol RETURN)

    Libraries [.LIB] :
    nama dari file pustaka yang akan dipergunakan (kalau tidak dipergunakan langsung tekan tombol RETURN)

    Warning: no stack segment

    A>


    Hasil dari proses ini akan didapatkan executable progrma yang disimpan di file dengan nama CONTOH1.EXE di drive B:. Karena program assembly ini harus berbentuk extension .COM, maka harus dirubah dari extension .EXE menjadi extension.COM dengan program service dari OS dengan nama programnya EXE2BIN.EXE, sebagai berikut:

    A.EXE2BIN B:CONTOH1.EXE B:CONTOH1.COM

    Hasil dari proses ini akan didapatkan executable program yang disimpan di file dengan nama CONTOH1.COM di drive B:

  4. Menjalankan executable program.
    Executable program
    dapat langsung dijalankan dengan menuliskan nama filenya pada keadaan promp A> sebagai berikut:

    A>b:contoh1
    SAYA KOMPUTER
    nama dari executable program CONOTH1.COM (.COM tidak perlu ditulis) yang berada di drive B: dan tekan tombol RETURN

    Pada program assembly, setiap instruksi merupakan sebuah instruksi di bahasa mesin. Kemungkinan sekumpulan instruksi yang sama di program assembly akan ditulis secara berulang-ulang untuk maksud yang sama. Hal ini menimbulkan pemikiran untuk mengembangkan suatu macro instruction (insturksi makro), yaitu sebuah instruksi yang mewakili beberapa instruksi sekaligus. Assembler sekarang umumnya dapat menggunakan instruksi makro tersebut, sehingga assembler-nya juga disebut dengan nama macro assembler. Dengan instruksi makro, maka program assembly akan lebih pendek dan mudah untuk ditulis. Kumpulan dari instruksi yang membentuk suatu makro dibuat di dalam file yang terpisah dan program-program assembly di file-file yang lain dapat menggunakannya berulang-ulang. Sebagai contoh file CONTOH3.MAC (dengan extension .MAC yang menunjukkan file pustaka makro) berisi kumpulan-kumpulan instruksi yang akan digunakan oleh instruksi makro unutk menampulkan hasil string di layar, sebagai berikut:

    COMMENT *
     PUSTAKA MACRO UNTUK IBM MICROSOFT ASSEMBLER
     MACRO DI FILE INI ADALAH :
        @tulis       MACRO          ;tampilkan di layar
    *

    @tulis     MACRO      kata?
               LOCAL      akhir, tulisan

               MOV        AH,9
               MOV        DX, OFFSET tulisan
               INT        21h
               JMP        SHORT akhir

    tulisan    DB         kata?,'$'
    akhir

               ENDM

    Dan pada program assembly anda, sekarang tidak perlu selalu menuliskan isntruksi-instruksi untuk menampilkan hasil string di layar, tetapi dapat menggunakan instruksi makro yang memanfaatkan program CONTOH3.ASM tersebut, sebagai berikut:

    COMMENT *
     Cetak tulisan SAYA KOMPUTER di layar
     dengan nama executable program CONTOH2.COM
     dengan menggunakan pustaka makro *

            IFI
            INLUDE      CONTOH3.MAC
            ENDIF

    Kode    SEGMENT
            ASSUME      CS:kode, DS:kode
            ORG            100h

    Mulai

            ;tampilkan tulisan
            @tulis 'SAYA KOMPUTER'
            INT            20h                   ;selesai

    kode    ENDS
            END mulai




Hartono, Jogiyanto. 2000. Pengenalan Komputer. Yogyakarta: ANDI.

KOMENTAR

BLOGGER

PENCARIAN

Nama

3P's Secret for Scholarship Hunter,3,Agama,3,Agama Islam,2,Akuntansi,53,Analisis dan Perancangan Sistem Informasi,86,Anchor!,1,Bagaimana Cara,1,Bahasa Indonesia,29,Bahasa Inggris,2,Bing,12,Biologi SMP/MTS VII,3,Bola Energi,1,Buku,2,Buku Impian,1,Cara Bahasa Inggris,1,Cara Membuat,1,Contoh Kalimat Aktif dan Pasif Bahasa Inggris,1,Contoh Kalimat Pasif Dalam Bahasa Inggris,1,Contoh Undangan Surat Dinas,1,Dahsyatnya Sedekah,1,Dasar Ilmu Komputer,4,DOS dan Windows,5,how to,1,Hypnotic Writing,1,Intelegensi Buatan,40,internet,2,Jaringan,2,Jaringan Komputer,7,Java,13,Kalimat Aktif Dan Pasif,1,Kalimat Pasif dalam Bahasa Inggris,1,Kata Konjungsi,2,Kekuatan Keyakinan,1,Kekuatan Visualisasi,1,Komputer,55,Konflik dan Office Idiots,9,Kuliah,228,Lampiran-Lampiran,8,Manajemen Informatika,230,Manajemen Strategik,9,Manajemen Sumber Daya Manusia,3,Manajemen Sumber Daya Manusia Strategik,3,Mengadakan Rapat Dengan Office Idiot,2,Menulis Surat Resmi,1,My 365 Days in Qatar,5,Neo Technology,1,Notes From Qatar Limited Edition,36,Office Idiots,29,Office Idiots Dan Miskomunikasi Mereka,11,Other,59,Pascal,8,Pelamar Kerja Yang Idiot,2,Pemograman,26,Pemrograman,44,Pengenalan Komputer,5,Penggunaan Kata,1,Penggunaan Kata a dan an,1,Penggunaan Kata are,1,Penggunaan Kata di,1,Penggunaan Kata is dan are,1,Penggunaan Kata pun,1,Penggunaan Kata The,1,Penggunaan Kata was,1,Penutup,1,Perilaku Kelompok dalam Organisasi,14,Perilaku Organisasi,14,Pewawancara Yang Idiot,2,Review Buku,7,Revolusioner! Mudah Cari Pekerjaan,66,Sabar Sedikit Lagi Siapa Tahu Berikutnya Impian Itu Akan Datang,1,SARAN-SARAN PEMBUATAN CL (COVER LETTER) DAN CV (CURRICULUM VITAE),22,Senyumlah dan Dapatkan Pekerjaan Itu dengan Mudah,1,Siapa Idiot baru Ini?,2,Simulasi CAT,3,Sistem Informasi,40,Sistem Informasi dan Intelegensi Buatan,44,Surat Resmi,1,Tentang Penulis,1,Tips,5,Top Modul Lolos Test CPNS,3,Wawancara? Siapa Takut!,1,
ltr
item
HanifSky: LANGUAGE SOFTWARE - ASSEMBLER
LANGUAGE SOFTWARE - ASSEMBLER
Assembler merupakan program yang digunakan untuk menterjemahkan program aplikasi yang ditulis dengan bahasa perakit (assembly language) atau bahasa pe
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJhxTxR3rjtOnao_ah6i250pvIbD7wJXeX8Yj0fB6ER_zdXTOUpqoYPhRCE7d7Lf_GGquaqNM6tLVt6-SKonh67mfTNs8kn4_1K8vP3xWZGW-4T-DY17vaaKuF0D0koIe8bAYqzAXpZRIG/s1600/LANGUAGE+SOFTWARE+-+ASSEMBLER.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJhxTxR3rjtOnao_ah6i250pvIbD7wJXeX8Yj0fB6ER_zdXTOUpqoYPhRCE7d7Lf_GGquaqNM6tLVt6-SKonh67mfTNs8kn4_1K8vP3xWZGW-4T-DY17vaaKuF0D0koIe8bAYqzAXpZRIG/s72-c/LANGUAGE+SOFTWARE+-+ASSEMBLER.jpg
HanifSky
https://hanifsky.blogspot.com/2011/06/language-software-assembler.html
https://hanifsky.blogspot.com/
https://hanifsky.blogspot.com/
https://hanifsky.blogspot.com/2011/06/language-software-assembler.html
true
7876875396099374687
UTF-8
Memuat Semua Postingan Postingan Tidak Ditemukan LIHAT SEMUA Baca Selengkapnya Balas Batal Hapus Oleh Beranda HALAMAN POSTINGAN Lihat Semua DIREKOMENDASIKAN LABEL ARSIP CARI SEMUA POSTINGAN Tidak ditemukan postingan yang cocok dengan permintaan Anda Kembali ke Beranda Minggu Senin Selasa Rabu Kamis Jumat Sabtu Min Sen Sel Rab Kam Jum Sab Januari Febuari Maret April Mei Juni Juli Agustus September Oktober November Desember Jan Feb Mar Apr Mei Jun Jul Agu Sep Okt Nov Des baru saja 1 menit yang lalu $$1$$ menit yang lalu 1 jam yang lalu $$1$$ jam yang lalu Kemarin $$1$$ hari yang lalu $$1$$ minggu yang lalu lebih dari 5 minggu yang lalu Pengikut Ikuti KONTEN PREMIUM INI TERKUNCI LANGKAH 1: Bagikan ke media sosial LANGKAH 2: Klik tautan di media sosial Anda Salin Semua Code Pilih Semua Code Semua kode telah disalin ke clipboard Anda Tidak dapat menyalin kode / teks, silakan tekan [CTRL] + [C] (atau CMD + C dengan Mac) untuk menyalin Daftar Isi