Langsung ke konten utama

Latihan J2ME Http Connection

Beberapa jenis aplikasi mobile memerlukan konektivitas HTTP dan HTTPS. Jika perangkat bergerak tidak memiliki  dukungan  TCP/IP  internal  maka  konektivitas  tersebut  disediakan  operator  melalui sebuah gateway.  Mekanisme  ini  dipakai  luas  pada  perangkat  mobile  yang  tersedia  dipasaran.menunjukkan aplikasi client‐server menggunakan HTTP.

import java.io.IOException;
import java.io.InputStream;
import java.io.InterruptedIOException;
import java.io.OutputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class formNilaiMidlet extends MIDlet implements CommandListener, Runnable{
    private Command cmdExit, cmdHitung;
    private Form form;
    private Alert alert;
    private TextField tfNama, tfNim, tfNilai1, tfNilai2, tfNilai3;
    private static Display display;
    private int errorcode = 0;
    private String hasil;
    public formNilaiMidlet(){
        display = Display.getDisplay(this);
    }
    public void startApp() {
        form = new Form("Hitung Nilai Mahasiswa");
        tfNim = new TextField("NIM: ", null, 32, TextField.NUMERIC);
        tfNama = new TextField("Nama: ", null, 32, TextField.ANY);
        tfNilai1 = new TextField("Nilai 1", null, 32, TextField.NUMERIC);
        tfNilai2 = new TextField("Nilai 2", null, 32, TextField.NUMERIC);
        tfNilai3 = new TextField("Nilai 3", null, 32, TextField.NUMERIC);
        cmdExit = new Command("Exit", Command.EXIT, 1);
        cmdHitung = new Command("Hitung", Command.SCREEN, 1);
        form.append(tfNim);
        form.append(tfNama);
        form.append(tfNilai1);
        form.append(tfNilai2);
        form.append(tfNilai3);
        form.setCommandListener(this);
        form.addCommand(cmdHitung);
        form.addCommand(cmdExit);
        display.setCurrent(form);
    }  
    public void pauseApp() {
        display.setCurrent(null);
    }  
    public void destroyApp(boolean force) {}
    public void commandAction(Command c, Displayable d){
        if(c == cmdExit){
            destroyApp(true);
            notifyDestroyed();
        }else if(c == cmdHitung){
            new Thread(this).start();
        }
    }
   
    public void run(){
        try{
            getData();
        }catch(Exception e){}
    }
   
    public void getData() throws Exception{
        String url = "";
        url = "http://localhost:8080/formNilai/index.jsp";
       
       
        HttpConnection hc = null;
        InputStream is = null;
        OutputStream os = null;
        StringBuffer messagebuffer = new StringBuffer();
        String temp = "";
        try{
            hc = (HttpConnection) Connector.open(url);
            hc.setRequestMethod(HttpConnection.POST);
            hc.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.0");
            hc.setRequestProperty("Content-Language", "en-US");
            hc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            os = hc.openOutputStream();
            os.write(("nil1="+tfNilai1.getString()+"&nil2="+tfNilai2.getString()+"&nil3="+tfNilai3.getString()).getBytes());
            os.close();

            int rc = hc.getResponseCode();
            if(rc != HttpConnection.HTTP_OK)
                throw new IOException("HTTP response code : " + rc);
            is =  hc.openInputStream();
            int ch;
            long len = hc.getLength();

            if((len!=-1)){
                for(int i = 0;i<len;i++)
                    if((ch = is.read()) != -1){
                        messagebuffer.append((char)ch);
                        temp = temp + (char) ch;
                    }else{
                        while((ch = is.read()) != -1)
                            messagebuffer.append((char)ch);
                            temp = temp + (char) ch;
                    }
            }

            is.close();
       
            //Parsing prs = new Parsing();
            //prs.process(temp);
            //String message = "Kode :  " + prs.getCode() + "\nPesan :\n" + prs.getMsg();

            //textbox.setString("Nama : Dian\nPassword : 9999");
            //siHasil.setText(temp);
            hasil = "NIM: "+ tfNim.getString() +"\nNama: "+ tfNama.getString() +"\nNilai Akhir: "+ temp;
            alert = new Alert("Hasil");
            alert.setTimeout(Alert.FOREVER);
            alert.setString(hasil);
            display.setCurrent(alert);
       
        }catch (InterruptedIOException ei){
            errorcode = -1;
            throw ei;
        }catch (IOException ioe){
            errorcode = -2;
            throw ioe;
        }catch (Exception ie){
            errorcode = -3;
            throw ie;
        }finally{
            try{
                if(hc != null) hc.close();
            }catch (IOException ignored){}
            try{
                if(is != null) is.close();
            }catch (IOException ignored){}
            try{
                if(os != null) os.close();
            }catch (IOException ignored){}
        }
    }
}

Dan membuat satu file Http connection yang untuk menghubungkan antara keduanya.
untuk penghitungan nya di file jsp
contoh disini saya punya file: "http://localhost:8080/formNilai/index.jsp"

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
    String nilai1, nilai2, nilai3;
    int nil1, nil2, nil3;
    double total;
   
    nilai1 = request.getParameter("nil1");
    nilai2 = request.getParameter("nil2");
    nilai3 = request.getParameter("nil3");
   
    nil1 = Integer.parseInt(nilai1);
    nil2 = Integer.parseInt(nilai2);
    nil3 = Integer.parseInt(nilai3);
   
    total = (nil1+nil2+nil3)/3;
    out.println(total);
%>

Selamat mencoba.
By. http://edukasifirman.blogspot.com/

Komentar

Postingan populer dari blog ini

Apa itu API

Bagaimana membuat aplikasi atau website dengan performa yang baik? Bagaimana membuat website yang mudah dikembangkan di berbagai platform? Bagaimana mengintegrasikan website dengan aplikasi yang berbeda bahasa pemrograman? Jawabannya adalah dengan membuat API. Untuk membuat API, arsitektur yang paling populer yaitu RESTful API.   Pada tutorial kali ini saya akan sharing bagaimana membuat RESTful API menggunakan node.js, express, dan MySQL secara step by step. Api itu RESTful API? RESTful API  merupakan implementasi dari API  ( Application Programming Interface ). REST (REpresentational State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protocol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Mungkin terdengar rumit tapi sebenarnya tidak. Tujuannya untuk menjadikan system dengan performa yang baik, cepat, dan mudah untuk dikembangkan ( scale ) terutama dalam pertukaran dan komunikasi data...

Arsitektur & Organisasi Komputer

    Arsitektur Komputer  Dalam bidang teknik komputer, arsitektur komputer adalah konsep perencanaan dan struktur pengoperasian dasar dari suatu sistem komputer. Arsitektur komputer ini merupakan rencana cetak-biru dan deskripsi fungsional dari kebutuhan bagian perangkat keras yang didesain (kecepatan proses dan sistem interkoneksinya). Dalam hal ini, implementasi perencanaan dari masing–masing bagian akan lebih difokuskan terutama, mengenai bagaimana CPU akan bekerja, dan mengenai cara pengaksesan data dan alamat dari dan ke memori cache, RAM, ROM, cakram keras, dll). Beberapa contoh dari arsitektur komputer ini adalah arsitektur von Neumann, CISC, RISC, blue Gene, dll.     Arsitektur komputer juga dapat didefinisikan dan dikategorikan sebagai ilmu dan sekaligus seni mengenai cara interkoneksi komponen-komponen perangkat keras untuk dapat menciptakan sebuah komputer yang memenuhi kebutuhan fungsional, kinerja, dan target biayanya. Arsitektur komputer ini...

How to use CKEditor in Nuxt Js

Requirement:  Node 14.18.3 NPM 6.14.15 Yarn 1.22.4 yarn add @ckeditor/ckeditor5-vue@23.0.0 yarn add @blowstack/ckeditor5-full-free-build@1.0.2 // plugins/ckeditor.vue import Vue from ' vue ' import CKEditor from ' @ckeditor/ckeditor5-vue ' Vue . use ( CKEditor ) // components/CkEditor.vue < template > < ckeditor : editor = " editor " : value = " value " : config = " config " @ input = " ( event ) => $emit ( ' input ' , event) " /> </ template > < script > let FullFreeBuildEditor; let CKEditor; if (process . client ) { FullFreeBuildEditor = require ( ' @blowstack/ckeditor5-full-free-build ' ); CKEditor = require ( ' @ckeditor/ckeditor5-vue ' ); } else { CKEditor = { component: { template: ' <div></div> ' } }; } export default { name: ' CkEditor ' , components: { ckeditor: CKEditor . component , }, p...