Showing posts with label Pemrograman. Show all posts
Showing posts with label Pemrograman. Show all posts

Monday, November 12, 2018

Aplikasi Android Qrcode Scanner Stock Barang

November 12, 2018 Ade Sudaryana

Hi lapakers, sekarang ane mau share cara membuat aplikasi Qrcode Scanner untuk Stock Barang dengan menggunakan android studio. Disini saya menghubungkan ke Database pada server, jadi saya menggunakan sistem webview untuk menampilkan hasil dari Scanner Qrcode nanti.

step pertama buat project baru di android studionya.
  • Klik File - New Project
  • Isi nama projectnya -  pilih yang Empty Project
Kita desain untuk layout activity_main.xml, seperti ini :




lalu kita buat activity baru, file – new - activity – empty activity.
Disini saya buat dengan nama activity_scanqr.

Layout activity_scanqr.xml




untuk scanner qrcode ane menggunakan api Zxing Barcode Scanner.
Tambahkan pada build.gradle(Module: app) - dependencies
implementation 'me.dm7.barcodescanner:zxing:1.9'
implementation 'com.mcxiaoke.volley:library-aar:1.0.0'
implementation 'com.android.support:support-annotations:27.1.1'

 Oke, lanjut ke MainActivity.java




untuk script Scanqr.java




Terakhir, tambahan izin penggunaan kamera di AndroidManifest.xml
Note !!!Disini saya masih pakai localhost untuk urlnya, silahkan diganti urlnya sesuai dengan kebutuhan anda.

Ane lampirkan project yang sudah jadi beserta sample webnya. 
silahkan download disini


qrscanner stok

Wednesday, January 16, 2013

ASSEMBLY atau ASSEMBLER

January 16, 2013 Ade Sudaryana



Bahasa rakitan (bahasa Inggris: assembly language) adalah bahasa pemrograman komputer tingkat rendah. Bahasa assembly merupakan notasi untuk bahasa mesin yang dapat dibaca oleh manusia dan berbeda-beda tergantung dari arsitektur komputer yang digunakan.

Berbeda dengan bahasa pemrograman tingkat tinggi, bahasa assembly atau rakitan biasanya memiliki hubungan 1-1 dengan instruksi bahasa mesin. Misalnya, tiap julukan (mnemonic) yang ditulis di program dengan bahasa rakitan akan diterjemahkan menjadi tepat satu kode operasi yang dapat dimengerti langsung oleh komputer. Pada bahasa tingkat tinggi, satu perintah dapat diterjemahkan menjadi beberapa kode operasi dalam bahasa mesin. Proses pengubahan bahasa rakitan ke bahasa mesin dilakukan oleh assembler, dan proses balikannya dilakukan oleh disassembler.

Setiap arsitektur komputer memiliki bahasa mesin yang berbeda-beda sehingga bahasa rakitannya pun berbeda-beda.(dna)

Kelebihan Bahasa Assembly:
1. Ketika di-compile lebih kecil ukuran
2. Lebih efisien/hemat memori
3. Lebih cepat dieksekusi

Kesulitan Bahasa Assembly:
1. Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang
    dibanding bahasa tingkat tinggi
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak
3. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis.


ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)
-  Operation Code(opcode) 
    Menspesifikasikan operasi yang akan dilakukan (misalnya, ADD). Operasi 
    dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi, atau 
    opcode.
-   Source Operand Reference
    Operasi dapat mencakup satu atau lebih sumber, operand merupakan input 
    bagi operasi.
-   Result Operand Reference
    Operand yang dapat membuat hasil dari operasi.
-   Next instruction Reference
    Berfungsi untuk memberitahu CPU posisi instruksi yang berikutnya yang 
    harus diambil setelah menyelesaikan eksekusi atau instruksi.

FORMAT INSTRUKSI
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).


JENIS – JENIS INSTRUKSI
- Data processing: Arithmetic dan  Logic Instructions
- Data storage: Memory instructions
- Data Movement: I/O instructions
- Control: Test and branch instructions

JUMLAH ALAMAT
Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya.
Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi :
1. Empat Alamat ( dua operand, satu hasil, satu   untuk alamat
    instruksi berikutnya)
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan 
    operand dan hasilnya)

MACAM-MACAM INSTRUKSI MENURUT JUMLAH OPERASI YANG DISPESIFIKASIKAN :
- O – Address Instruction
- 1 – Addreess Instruction.
- N – Address Instruction
- M + N – Address Instruction

OPERASI-OPERASI SET INSTRUKSI
Operasi set instruksi untuk transfer data :
• MOVE digunakan untuk memindahkan word atau blok dari source ke tujuan
• STORE digunakan untuk memindahkan word dari prosesor ke memori.
• LOAD kebalikan dari store
• EXCHANGE digunakan untuk menukar isi sumber ke tujuan.
• CLEAR / RESET digunakan untuk membersihkan word.
• SET digunakan untuk  memindahkan word 1 ke tujuan.
• PUSH : memindahkan word dari sumber ke bagian paling atas stack.
• POP : memindahkan word dari bagian paling atas sumber.

Operasi set instruksi untuk arithmetic :
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian

 Operasi set instruksi untuk operasi logical :
• AND, OR, NOT, EXOR
• COMPARE untuk melakukan perbandingan logika.
• 3TEST untuk menguji kondisi.
• SHIFT : operand menggeser ke kiri atau kanan
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.

Operasi set instruksi untuk conversi :
• TRANSLATE : menterjemahkan nilai-nilai berdasarkan tabel korespodensi.
• CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.

Operasi set instruksi Input / Ouput :
• INPUT : memindahkan data dari perangkat I/O tertentu ke tujuan
• OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
• START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
• TEST I/O : memindahkan informasi dari sistem I/O ke tujuan

Operasi set instruksi untuk transfer control :
• JUMP (cabang) : pemindahan tidak bersyarat.
• JUMP SUBRUTIN : melompat ke alamat tertentu.
• RETURN : mengganti isi PC dan register lainnya yang berasal dari
   lokasi tertentu.
• EXECUTE : mengambil operand dari lokasi tertentu lalu mengeksekusinya
  sebagai instruksi.
• SKIP : menambah PC sehingga melompati instruksi berikutnya.
• SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan
   pada persyaratan.
• HALT : menghentikan eksekusi program.
• WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
• NO OPERATION : tidak ada operasi yang dilakukan.

CONTROL SYSTEM :  membaca atau mengubah register kontrol



Wednesday, January 4, 2012

Program C++ Aplikasi Kasir Warnet

January 04, 2012 Ade Sudaryana


Hi Lapakers, ane share tugas kuliah ane nih. script coding C++ untuk aplikasi kasir warnet. coba ditelaah dan dipahami setelah dicopas y. hehehe

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<iomanip.h>

struct
{
char nok,jenis,*nmlayanan;
int tarif,durasi,total;
}rental[10];

long int tokes=0;

main()
{
int i,j;
char lagi;
atas:

clrscr();
cout<<"================================================="<<endl;
cout<<" WARNET BINA CYBER"<<endl;
cout<<"================================================="<<endl;
cout<<"Jumlah Transaksi :";cin>>j;
cout<<endl;
for(i=1;i<=j;i++)
{
cout<<"Transaksi Ke :"<<i<<endl;
cout<<"No. Komputer :";cin>>rental[i].nok;
cout<<"Jenis Layanan :";cin>>rental[i].jenis;
if(rental[i].jenis=='A'||rental[i].jenis=='a')
{rental[i].nmlayanan="Internet";rental[i].tarif=2500;}
else if(rental[i].jenis=='B'||rental[i].jenis=='b')
{rental[i].nmlayanan="Game Online";rental[i].tarif=3000;}
else if(rental[i].jenis=='C'||rental[i].jenis=='c')
{rental[i].nmlayanan="Game Offline";rental[i].tarif=2000;}
else if(rental[i].jenis=='D'||rental[i].jenis=='d')
{rental[i].nmlayanan="Rental Pengetikan";rental[i].tarif=1500;}
cout<<"Tarif Permenit :"<<rental[i].tarif<<endl;
cout<<"Durasi Bermain (menit) :";cin>>rental[i].durasi;
rental[i].total=rental[i].tarif*rental[i].durasi;
tokes=tokes+rental[i].total;
cout<<endl;
}

clrscr();

cout<<"================================================="<<endl;
cout<<"No. No. Jenis Durasi Tarif Total"<<endl;
cout<<" Komp. Layanan Bermain Permenit "<<endl;
cout<<"================================================="<<endl;
for(i=1;i<=j;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(7)<<rental[i].nok;
cout<<setiosflags(ios::left)<<setw(12)<<rental[i].nmlayanan;
cout<<setiosflags(ios::left)<<setw(9)<<rental[i].durasi;
cout<<setiosflags(ios::left)<<setw(12)<<rental[i].tarif;
cout<<setiosflags(ios::left)<<setw(5)<<rental[i].total<<endl;
}
cout<<"================================================="<<endl;
cout<<" Total Keseluruhan :"<<tokes<<endl;
cout<<" Jenis Layanan Paling Banyak:On Progress"<<endl<<endl;

cout<<"Return :";cin>>lagi;
if (lagi=='Y' || lagi=='y')
goto atas;
else
getch();
}


Program C++ Aplikasi Kasir Sederhana

January 04, 2012 Ade Sudaryana




Hi gaes, ini ane kasih script coding C++ untuk membuat aplikasi kasir sederhana. sebenarnya ini juga bagian tugas kuliah ane sih. hihihi

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<iomanip.h>

main()
{
class
{
public:
char nm[20];
long int harga,thr;
int jumbel;
}penj[10];
float subtotal=0,diskon,ppn,grand,bayar,kembali;
int nota;
int i,j;
char lagi;
atas:

clrscr();
cout<<"============================================="<<endl;
cout<<" SWALAYAN BINA DAGANG"<<endl;
cout<<"============================================="<<endl;
cout<<"No. Nota : ";cin>>nota;
cout<<"Jumlah Transaksi : ";cin>>j;
for(i=1;i<=j;i++)
{
cout<<endl;
cout<<"Transaksi ke -"<<i<<endl;
cout<<"Nama Barang : ";gets(penj[i].nm);
cout<<"Harga Satuan : ";cin>>penj[i].harga;
cout<<"Jumlah Beli : ";cin>>penj[i].jumbel;
penj[i].thr=penj[i].harga*penj[i].jumbel;
cout<<"Total Harga : "<<penj[i].thr;
subtotal=subtotal+penj[i].thr;
if(subtotal>180000)
{diskon=0.15*subtotal;}
else if(subtotal>70000)
{diskon=0.05*subtotal;}
else
{diskon=0;}
ppn=0.1*(subtotal-diskon);
grand=(subtotal-diskon)+ppn;
}

clrscr();
cout<<" SWALAYAN BINA DAGANG"<<endl;
cout<<" Jl. Bina Sarana No. 851-OK"<<endl<<endl;
cout<<"============================="<<endl;
cout<<"Nama Brg @Harga Jml Beli"<<endl;
cout<<"============================="<<endl;
for(i=1;i<=j;i++)
{
cout<<setiosflags(ios::left)<<setw(12)<<penj[i].nm;
cout<<setiosflags(ios::left)<<setw(8)<<penj[i].harga;
cout<<setiosflags(ios::left)<<setw(8)<<penj[i].jumbel<<endl;
}
cout<<"============================="<<endl;
cout<<" Subtotal : Rp."<<subtotal<<endl;
cout<<" Diskon : Rp."<<diskon<<endl;
cout<<" PPN 10% : Rp."<<ppn<<endl;
cout<<"Grand Total : Rp."<<grand<<endl;
cout<<" Bayar : Rp.";cin>>bayar;
cout<<"-----------------------------"<<endl;
kembali=bayar-grand;
cout<<" Kembalian : Rp."<<kembali<<endl<<endl<<endl;
cout<<" Terima Kasih Atas"<<endl;
cout<<" Kunjungan Anda "<<endl<<endl<<endl;
cout<<"Return :";cin>>lagi;
if (lagi=='Y' || lagi=='y')
goto atas;
else
getch();
}

Program C++ Menghitung Nilai Sekolah

January 04, 2012 Ade Sudaryana




Nih gan klo ada tugas untuk C++ disuruh membuat program hitung nilai. ane kasih script codingnya, coba disimak dan ditelaah lagi ya.

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<iomanip.h>
char *grade(char total)
{
if(total>80)
{return "A";}
else if(total>70)
{return "B";}
else if(total>60)
{return "C";}
else if(total>50)
{return "D";}
else
{return "E";}
}
char *makul(char kode[4])
{
if(!strcmp(kode, "151"))
{return "Algoritma dan Pemrograman 1";}
else if(!strcmp(kode, "422"))
{return "linux 1";}
else if(!strcmp(kode, "733"))
{return "PPN II(Access)";}
else if(!strcmp(kode, "772"))
{return "DBMS";}
}
main()
{
struct
{
char nim[8],nm[20];
int prs,tugas,uts,uas,total;
}nilai[10];
int i,j;
char kode[4];
clrscr();
cout<<"=========================================="<<endl;
cout<<" PROGRAM HITUNG NILAI "<<endl;
cout<<" ADHEYANA "<<endl;
cout<<"=========================================="<<endl;
cout<<"Kode Mata Kuliah :";cin>>kode;
cout<<"Jumlah Data Mahasiswa :";cin>>j;
for(i=1;i<=j;i++)
{
cout<<endl;
cout<<"Data Ke -"<<i<<endl;
cout<<"NIM :";cin>>nilai[i].nim;
cout<<"Nama :";cin>>nilai[i].nm;
cout<<"Nilai prsnsi :";cin>>nilai[i].prs;
cout<<"Nilai Tugas :";cin>>nilai[i].tugas;
cout<<"Nilai UTS :";cin>>nilai[i].uts;
cout<<"Nilai UAS :";cin>>nilai[i].uas;
nilai[i].total=(0.1*nilai[i].prs)+(0.2*nilai[i].tugas)+(0.3*nilai[i].uts)+(0.4*nilai[i].uas);
}

clrscr();
cout<<"Kode Mata Kuliah :"<<kode<<endl;
cout<<"Mata Kuliah :"<<makul(kode)<<endl;
cout<<"==========================================================================="<<endl;
cout<<"No.|NIM |Nama | Nilai |Total |Grade"<<endl;
cout<<" | |Mahasiswa | prsnsi | Tugas | UTS | UAS |"<<endl;
cout<<"==========================================================================="<<endl;
for(i=1;i<=j;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(8)<<nilai[i].nim;
cout<<setiosflags(ios::left)<<setw(14)<<nilai[i].nm;
cout<<setiosflags(ios::left)<<setw(14)<<nilai[i].prs;
cout<<setiosflags(ios::left)<<setw(8)<<nilai[i].tugas;
cout<<setiosflags(ios::left)<<setw(6)<<nilai[i].uts;
cout<<setiosflags(ios::left)<<setw(5)<<nilai[i].uas;
cout<<setiosflags(ios::left)<<setw(9)<<nilai[i].total;
cout<<setiosflags(ios::left)<<setw(5)<<grade(nilai[i].total)<<endl;
}
cout<<"=========================================================================="<<endl;
cout<<" Jumlah Mahasiswa Lulus : On Progress"<<endl;
cout<<" Jumlah Mahasiswa Tidak Lulus : On Progress"<<endl;
getch();
}

Program C++ Menghitung Honor Guru

January 04, 2012 Ade Sudaryana




ini sebenarnya tugas ane waktu kuliah membuat aplikasi C++ untuk mengitung Honor Guru, langsung dicek aja script coding C++.

#include<stdio.h>
#include<iomanip.h>
#include<iostream.h>
#include<conio.h>
char *nama(char nip[9])
{
if(!strcmp(nip,"13540121"))
{return "Eva Melinda, S.Kom";}
else if(!strcmp(nip,"13540424"))
{return "Ade Hendini, S.Kom";}
else if(!strcmp(nip,"13540488"))
{return "Deni Maulana, ST";}
else if(!strcmp(nip,"13540773"))
{return "Abduyl Majid, S.Si";}
else if(!strcmp(nip,"13540999"))
{return "Desy R. Sari, M.Msi";}
}

char *gol(char nip[8])
{
if(!strcmp(nip,"13540121"))
{return "I";}
else if(!strcmp(nip,"13540424"))
{return "I";}
else if(!strcmp(nip,"13540488"))
{return "II";}
else if(!strcmp(nip,"13540773"))
{return "II";}
else if(!strcmp(nip,"13540999"))
{return "III";}
}

main()
{
class
{
public:
char nip[9];
int jam,hnr,total;
}guru[10];

int i,j;
long int tokes=0;
clrscr();
cout<<"=============================================="<<endl;
cout<<" PROGRAM HITUNG HONORIUM GURU HONORER"<<endl;
cout<<" SEKOLAH DASAR NEGERI AL - ADHEYANA"<<endl;
cout<<"=============================================="<<endl;
cout<<"Jumlah Data Guru :";cin>>j;
for(i=1;i<=j;i++)
{
cout<<endl;
cout<<"Data ke-"<<i<<endl;
cout<<"NIP : ";cin>>guru[i].nip;
cout<<"Nama : "<<nama(guru[i].nip)<<endl;
cout<<"Golongan : "<<gol(guru[i].nip)<<endl;
if(!strcmp(gol(guru[i].nip),"I"))
{guru[i].hnr=15000;}
else if(!strcmp(gol(guru[i].nip),"II"))
{guru[i].hnr=26500;}
else if(!strcmp(gol(guru[i].nip),"III"))
{guru[i].hnr=88000;}
cout<<"Jumlah Jam Mengajar : ";cin>>guru[i].jam;
guru[i].total=guru[i].hnr*guru[i].jam;
tokes=tokes+guru[i].total;
}
clrscr();
cout<<"========================================================================="<<endl;
cout<<"No. NIP Nama Golongan honor Jam Total"<<endl;
cout<<" Guru mengajar"<<endl;
cout<<"========================================================================="<<endl;
for(i=1;i<=j;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(9)<<guru[i].nip;
cout<<setiosflags(ios::left)<<setw(20)<<nama(guru[i].nip);
cout<<setiosflags(ios::left)<<setw(12)<<gol(guru[i].nip);
cout<<setiosflags(ios::left)<<setw(10)<<guru[i].hnr;
cout<<setiosflags(ios::left)<<setw(12)<<guru[i].jam;
cout<<setiosflags(ios::left)<<setw(5)<<guru[i].total<<endl;
}
cout<<"======================================================================="<<endl;
cout<<" Total Keseluruhan : Rp. "<<tokes<<endl;
cout<<" Total honor Tertinggi : On Progress"<<endl;
cout<<" Total honor Terendah : On Progress"<<endl;
getch();
}

C++