Tuesday 28 February 2017

Yah di sela sela kesibukan gw sedikit berbagi mengenai salah satu tugas kuliah gw. Disini gw di berikan tugas membuat program bebas yang bisa upload dan membaca file. Nah kebetulan gw lagi demen demennya sama JSP jadi gw milih bahasa pemrograman JSP. Mungkin itu sedikit intro yang gak penting... hehhehe


Yup mari lanjutkan bahan bahan yang di perlukan untuk membuat program ini, yaitu :
1. Pastikan anda sudah melakukan instalasi JDK sebagai mesin untuk mengolah file Java dan Servernya, sebagai contoh kami menggunakan Apache Tomcat ( untuk cara install JDK dan Apache Tomcat akan di Bahas di Post Selanjutnya) 😋
Gambar 1 Tanda Sudah terinstal JDK
2. Setelah semua itu di install lalu coba jalankan Apache Tomcat, bisa menggunakan Netbean atau run file startup di C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.27\bin ( ini tergantung milih file locationnya, kalo defaultnya ya seperti ini )
Gambar 2 Server Tomcat Status Running
3. Create New Projeck Pada Netbean Anda, Kemudian pilih Web Application
Gambar 3 Create Projeck
4. Kemudian pilih Web Application lalu klik next
Gambar 4 Pemberian Nama Projeck Name
5. Silahkan Berikan Nama Project Name anda (terserah ), setelah itu pilih lagi Next
Gambar 5 Pemilihan Server

6. Pada Tahapan ini silahkan pilih Server yang anda inginkan, klo gw sih pilihnya Apache Tomcat #gratisan, setelah itu klik Finish Aja
7. Kemudian file pun akan terbentuk, seperti akan muncul index.jsp ( untuk netbean lama ) atau index.html (untuk netbean baru versi 8 )
8. Setelah itu pada Web Pages klik kanan > New > Folder. Fungsi ini untuk menampung sementara file yang di upload, setelah di upload lalu di baca dan kemudian di hapus kembali
Gambar 6 Pembuatan Folder


9. Masukkan Library di bawah ini, librari ini yang berfungsi untuk membaca, menulis dan mengupload file .doc; .pdf ; .text

    Gambar 7 Paket Library

    10. Lalu coba akses Akses http://localhost:8080/namaProgram misalkan disini kami menamai programnya http://localhost:8080/tugas_upload_txt_20170120/, maka akan muncul seperti pada gambar di bawah ini

    Gambar 8 Aplikasi Bisa Diakses

    11.  Lalu pilihlah File yang ingin di baca tulisannya dengan menekan tombol Choose File

     Gambar 9 Tampilan Ketika Choose File
    12. Pada Program ini Hanya file bertipe .pdf, .text, dan .doc saja yang bisa dibuka dan pada sistem ini mendeteksi jika file melebihi 3 MB, karena jika tidak di batasi akan terasa lama banget 😎

    13.  Lalu klik Upload, maka akan muncul seperti pada gambar di bawah ini
     Gambar 10 Hasil Program ketika klik upload

     Gambar 11 File yang di upload
    14. Pada system ini akan mencari kata kata yang sama di setiap katanya, jika di dalam file tidak ada kata yang sama maka system tidak akan memunculkan kata tersebut
    15. Untuk proses pembuatannya hanya terdiri dari 2 file index.jsp dan ProsessUpload.java
    index.jsp
    <%--
        Document   : index
        Created on : Jan 17, 2017, 8:40:59 PM
        Author     : RAMA
    --%>

    <%@page import="org.apache.poi.xwpf.usermodel.XWPFDocument"%>
    <%@page import="java.io.FileOutputStream"%>
    <%@page import="java.io.File"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
            <link href="utility/css/style.css" rel="stylesheet" type="text/css">
            <script type="text/javascript" src="utility/javascript/jquery-1.10.2.min.js"></script>
            <script type="text/javascript" src="utility/javascript/jquery.form.min.js"></script>
        </head>
        <body>
            <div id="upload-wrapper">
                <div align="center">
                    <h3>Upload Text </h3>
                    <form action="ProsessUpload" name="uploadform" method="post"
                    enctype="multipart/form-data" id="MyUploadForm">
                       
                        <input name="FileInput" id="FileInput" type="file"
                               accept=".txt,application/msword,application/pdf"/>
                        <input type="submit"  id="submit-btn" value="Upload" />
                    </form>
                    <div id="progressbox" >
                        <div id="progressbar"></div ><div id="statustxt">0%</div>
                    </div>
                    <div id="output"></div>
                </div>
            </div>
           
            <script type="text/javascript">
                $(document).ready(function() {
                    var options = {
                        target:   '#output',   // respon dari server
                        beforeSubmit:  beforeSubmit,  // melakukan sesuatu sebelum di kirim
                        success:       afterSuccess,  // melakukan sesuatu sesudah di krim
                        uploadProgress: OnProgress, //upload progress
                        resetForm: true        // reset form jika berhasil di upload
                    };
            
                    $('#MyUploadForm').submit(function() {
                        $(this).ajaxSubmit(options);           
                        return false;
                    });
            
                    // function jika data success kirim
                    function afterSuccess()
                    {
                        $('#submit-btn').val("Upload");
                        $('#progressbox').delay( 1000 ).fadeOut(); //hide progress bar

                    }

                    // function sebelum di kirim
                    function beforeSubmit(){
                        //check browser support
                        if (window.File && window.FileReader && window.FileList && window.Blob)
                        {
            
                            // check jika file kosong
                            if( !$('#FileInput').val())
                            {
                                $("#output").html("File masih kosong ...");
                                return false
                            }
            
                            var fsize = $('#FileInput')[0].files[0].size; //get file size
                            var ftype = $('#FileInput')[0].files[0].type; // get file type
            
                            //type file yang di ijinkan
                            //alert(ftype);
                            switch(ftype)
                            {  
                                //case 'image/png':
                                //case 'image/gif':
                                //case 'image/jpeg':
                                //case 'image/pjpeg':
                                case 'text/plain':
                                //case 'text/html': //html file
                                //case 'application/x-zip-compressed':
                                case 'application/pdf':
                                case 'application/msword':
                                //case 'application/vnd.ms-excel':
                                //case 'application
                                //vnd.openxmlformats-officedocument.wordprocessingml.document':
                                //case 'video/mp4':
                                    break;
                                default:
                                    $("#output").html("<b>"+ftype+"</b> Maaf file tidak di dukung!");
                                    return false
                            }
            
                            //maximal file size
                            if(fsize>5242880)
                            {
                                $("#output").html("<b>"+bytesToSize(fsize) +"</b>
                               Maaf File Terlalu Besar maximal 5 MB.");
                                return false
                            }
                            // loading prosess upload      
                            $('#submit-btn').val('Uploading ...');
                            $("#output").html(""); 
        
                        }else{
                            // Output error to older unsupported browsers that doesn't support
                            // HTML5 File API
                            $("#output").html("Maaf browser anda tidak mendukung silahkan upgrade");
                            return false;
                        }
                    }

                    //progress bar function
                    function OnProgress(event, position, total, percentComplete)
                    {
                        //Progress bar
                        $('#progressbox').show();
                        $('#progressbar').width(percentComplete + '%')
                        //update progressbar percent complete
                        $('#statustxt').html(percentComplete + '%'); //update status text
                        if(percentComplete>50)
                        {
                            $('#statustxt').css('color','#000'); //change status text to white after 50%
                        }
                    }
                    function bytesToSize(bytes) {
                        var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
                        if (bytes == 0) return '0 Bytes';
                        var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
                        return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];
                    }
                });

            </script>
          
        </body>

    </html>


    Kemudian buatlah servletnya dengan cara :
    1. Pada source package, klik kanan > pilih new > pilih servlet > berikan nama servlet tersebut > finish
    seperti pada gambar di bawah ini
    Gambar 12 New Servlet

     Gambar 13 Pemberian nama servlet

    Gambar 14 hasil / view tampilan servlet

    2. Kemudian ganti file seperti gambar 14 diatas, menjadi
    try {
                /* TODO output your page here. You may use following sample code. */
                boolean succesUpload = false;
                //prosess upload file
                Part filePart = request.getPart("FileInput");
                //String test = request.getParameter("test");
                String temp = filePart.getHeader("content-disposition").split(";")[2].trim();
                String filename = temp.substring("filename=\"".length(), temp.length() - 1);
                String sPath = getServletConfig().getServletContext().getRealPath("/upload");
                InputStream inputStream = filePart.getInputStream();
                String type = filePart.getContentType();
                FileOutputStream stream = new FileOutputStream(getServletContext().getRealPath("/upload") + "\\" + filename);
                int i = -1;
                while ((i = inputStream.read()) != -1) {
                    stream.write(i);
                    succesUpload = true;
                }
                stream.close();
                inputStream.close();

                if (succesUpload) {
                    //membaca file

                    FileInputStream fis = new FileInputStream(sPath + "\\" + filename);
                    Set s = new TreeSet();
                    Set dd = new TreeSet();
                    String[] stringsArray;
                    //mengecek kata-kata yang tidak boleh muncul
                    String[] listKataSama = {"", " ","”","»", "–", ".", ":", "'", "*", "<", ">", "/", "(", ")", "**", "$", "#", "!", "+", "&", "dan","biasa","dengan","serta","tetapi","namun","sedangkan","sebaliknya","melainkan","hanya","bahkan","lagipula","apalagi","jangankan","kecuali","hanya","lalu","kemudian","selanjutnya","yaitu","yakni","bahwa","adalah","ialah","jadi","karena","oleh","sebab","itu","bila","kalau","jikalau","jika","asal","agar","supaya","ketika","sewaktu","sebelum","sesudah","tatkala","sampai","hingga","sehingga","untuk","seperti","tempat", "di", "itu", "dari", "ini", "pada", "atau", "ke", "akan", "maka", "yang", "kemana", "dimana", "siapa", "mengapa", "bagaimana"};
                    Hashtable hashListKataSama = new Hashtable();
                    for (int q = 0; q < listKataSama.length; q++) {
                        //menyimpan kata-kata yang sama tersebut, jika ada kata yang sesuai di list maka tidak dimunculkan
                        hashListKataSama.put("" + listKataSama[q], false);
                    }
                    String text = "";
                    int y = 1;
                    Hashtable hashJumlahKataSama = new Hashtable();
                    Vector kataSama = new Vector();
                    if (type != null) {
                        try {
                            // cek type format dile
                            if (type.equalsIgnoreCase("application/vnd.openxmlformats-officedocument.wordprocessingml.document")) {
                                try {
    //                            XWPFDocument doc = new XWPFDocument(fis); // untuk docx
    //                            List<XWPFParagraph> paragraphs = doc.getParagraphs();
    //                            System.out.println("Total no of paragraph " + paragraphs.size());
    //                            for (XWPFParagraph para : paragraphs) {
    //                                out.println(para.getText().trim());
    //                            }
    //                            fis.close();

                                } catch (Exception exc) {
                                    out.println(exc);
                                }

                            } else if (type.equalsIgnoreCase("application/pdf")) {
                                try {
                                    PDDocument document = null;
                                    document = PDDocument.load(new File(sPath + "\\" + filename));
                                    document.getClass();
                                    //if (document.isEncrypted()) {
                                        PDFTextStripperByArea stripper = new PDFTextStripperByArea();
                                        stripper.setSortByPosition(true);
                                        stripper.setLineSeparator(".");
                                        stripper.setWordSeparator(".");
                                        PDFTextStripper Tstripper = new PDFTextStripper();
                                        String text1 = Tstripper.getText(document).trim();
                                        String textArr[]=text1.split(" ");
                                       if(textArr!=null && textArr.length>0){
                                            for(int d=0;d<textArr.length;d++){
                                            text = text + textArr[d].trim().toLowerCase().replace(".", ",") + ",";
                                        }
                                       }
                                        //out.println("Text:" + st.trim());
                                   // }
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }

                            } else if (type.equalsIgnoreCase("application/msword")) {
                                try {
                                    HWPFDocument doc = new HWPFDocument(fis);
                                    WordExtractor we = new WordExtractor(doc);
                                    //get Paragraph text  as array
                                    // String papa = "";
                                    String paragraphs[] = we.getParagraphText();
                                    for (int xx = 0; xx < paragraphs.length; xx++) {
                                        //out.println(paragraphs[xx].trim()+"</br>");
                                        text = text + paragraphs[xx].trim().toLowerCase().replace(".", ",") + ",";
                                    }

                                } catch (Exception exc) {
                                    out.print(exc);
                                }
                            } else {

                                BufferedReader bufferedReader = new BufferedReader(new FileReader(sPath + "\\" + filename));
                                String text1;
                                while ((text1 = bufferedReader.readLine()) != null) {
                                    //out.println(text1.trim() + "<br>");
                                    text = text + text1.trim().toLowerCase().replace(".", ",") + ",";
                                }
                                try {
                                    if (bufferedReader != null) {
                                        bufferedReader.close();
                                    }
                                } catch (IOException ex) {
                                    ex.printStackTrace();
                                }
                            }
                        } catch (Exception exc) {
                            out.print(exc);
                        }

                        ///setelah di tampung lalu di olah
                        if (text != null && text.length() > 0) {

                            String hilangkanTanda[] = text.split("/");
                            if (hilangkanTanda.length > 0) {
                                text = "";
                            }
                            for (int w = 0; w < hilangkanTanda.length; w++) {
                                text = text + (hilangkanTanda[w].toLowerCase().replace("/", ",") + ",").trim();
                            }
                            hilangkanTanda = text.split("-");
                            if (hilangkanTanda.length > 0) {
                                text = "";
                            }
                            for (int w = 0; w < hilangkanTanda.length; w++) {
                                text = text + (hilangkanTanda[w].toLowerCase().replace("-", ",") + ",").trim();
                            }
                            hilangkanTanda = text.split(":");
                            if (hilangkanTanda.length > 0) {
                                text = "";
                            }
                            for (int w = 0; w < hilangkanTanda.length; w++) {
                                text = text + (hilangkanTanda[w].toLowerCase().replace(":", ",") + ",").trim();
                            }

                            hilangkanTanda = text.split(" ");
                            if (hilangkanTanda.length > 0) {
                                text = "";
                            }
                            for (int w = 0; w < hilangkanTanda.length; w++) {
                                text = text + (hilangkanTanda[w].toLowerCase().replace(" ", ",") + ",").trim();
                            }

                            stringsArray = text.split(",");
                            for (String a : stringsArray) {
                                if (!hashListKataSama.containsKey("" + a)) {
                                    if (!s.add(a)) {
                                        //y++;
                                        if (hashJumlahKataSama != null && hashJumlahKataSama.containsKey("" + a)) {
                                            y = (int) hashJumlahKataSama.get("" + a);
                                            hashJumlahKataSama.put("" + a, (int) y + 1);
                                        } else {
                                            y = 1;
                                            hashJumlahKataSama.put("" + a, (int) y + 1);
                                            kataSama.add("" + a);
                                        }

                                    }
                                }

                            }
                            if (kataSama != null && kataSama.size() > 0) {
                                out.println("<table>");
                                out.println("<tr>");
                                out.println("<td>No</td>");
                                out.println("<td>Nama Sama</td>");
                                out.println("<td>Jumlah</td>");
                                out.println("</tr>");

                                for (int e = 0; e < kataSama.size(); e++) {
                                    String namaSama = (String) kataSama.get(e);
                                    out.println("<tr>");
                                    out.println("<td>" + (e + 1) + "</td>");
                                    out.println("<td>" + namaSama + "</td>");
                                    out.println("<td>" + (int) hashJumlahKataSama.get("" + namaSama) + "</td>");
                                    out.println("</tr>");
                                    //out.println("<p>" + (e + 1) + ".duplicate detected : " + namaSama + "; jumlah :" + (int) hashJumlahKataSama.get("" + namaSama) + "</p>");
                                    //out.println("<p>jumlah : " + (int)hashJumlahKataSama.get(""+namaSama)+"</p>");
                                }
                                out.println("</table>");
                            }
                        }

                    }

                    //setelah di baca lalu di hapus
                    File file = new File(sPath + "\\" + filename);
                    boolean xx = file.delete();
                    if (xx) {
                        System.out.println(file.getName() + " is deleted!");
                    } else {
                        System.out.println("Delete operation is failed.");
                    }
                }
              
            } catch (Exception exc) {
                out.println(exc);
            } finally {
                out.close();
            }

    Jika ada pertanyaan bisa komentari post ini 

    "Happy Sharing Komputer "


    0 komentar:

    Post a Comment

    Iklan

    rss


    Translate

    Chat

    Komentar Blog

    Iklan