Kamis, 07 Desember 2017

CRYPTERIUM - Cryptocurrency Banking & Cryptocurrency Platform


A Brand New Cryptoeconomy

Global demand of cashless payments continues to rise at such a rate that the end of cash as the
payment of choice is now a stark reality. The number of worldwide cashless transactions was over
430 billion in 2015 whilst the rise of mobile payments is expected to exceed $3.8 trillion by 2020.

As people change the way that they interact with money, we have also seen the introduction of a brand-new form of money, cryptocurrencies. It is less than 10 years since the creation of the Bitcoin,
the world’s first digital currency that in turn built a brand new financial ecosystem called the blockchain. Today there are over 1,000 digital currencies8, known as cryptocurrencies, and that number is growing every day.
The advantages of cryptocurrencies over traditional fiat currencies are numerous and impossible for
fiat currencies to match. Today a transaction between two people in different countries can still take
several days and cost the parties a significant share of the money transferred (the average cross
border transaction fee is 7.45%9) as each party in the chain, of which there are many, requires a small
margin for their efforts. This can now be done in seconds using cryptocurrencies via the blockchain
for practically zero cost and more securely than ever before.
But for many people, even those with a strong interest in new technology and better ways of doing
everyday actions, cryptocurrencies are still perceived as an investment instrument. The single most
important step in moving benefits from the conceptual and into the practical mainstream is to enable
people to use cryptocurrencies in the same way as they can any other currency, and that means enabling instant payments with their Cryptocurrency as if it were cash or money stored in their digital
bank accounts.
Crypterium is building Cryptobank 2.0 for the Cryptocurrency era. People will be able to store, spend, exchange and later borrow practically any Cryptocurrency in the same way as they could any other currency, but in a quicker, cheaper and more secure environment than it is possible in any traditional bank or fiat currency. The Cryptobank will be the decentralized core that interlocks the restricted financial world we live in today and a future Cryptoeconomy with limitless borderless opportunities.
Most of the technology for this financial revolution already exists: Apple Pay, Samsung Pay, Alipay; the world’s biggest banks and payment platforms have already installed more than 42 million contactless payment terminals throughout the world, a number that is growing rapidly.
Crypterium will take full advantage of this global contactless phenomenon, but instead of using it for
traditional payment cards using fiat currencies, we will use it for cryptocurrencies through personal
smartphones. We can skip generations of dedicated development by some of the biggest companies
in the world, and adapt that technology to the Cryptocurrency Era within months, or years, but
definitely, not decades.

We anticipate that soon practically any cryptocurrency can be instantaneously transferred into any
local fiat currency anywhere in the world where cashless payments through contactless payments
terminals are possible and in turn can be spent. This will be done quicker, cheaper and safer than
any fiat currency bank has ever been able to achieve. For the retailer, they are none-the-wiser. As far
as they are concerned, they were paid in their currency of choice.
It is just a small step from cashless Cryptocurrency payments to additional banking services, such
as cross border transactions and eventually Cryptocurrency based loans.
Crypterium is aimed on commence operations by delivering one of the best Cryptocurrency mobile
banking payment application available today. As adoption increases, additional services are intended
to be added.
The team at Crypterium has many years of experience building fintech and mobile payment solutions
including the building and launch of one of Eastern Europe’s most important and award winning
contactless payment platform’s PayQR.

Comparing The Worlds Best Traditional Bank with A New Blockchain Bank

With the advent of any new market changing technology, the old world order often struggles to adapt
to the new world realities. It will be no different for the current banking giants who even today cannot
agree whether or not cryptocurrencies are their future or a passing phase. Whilst they decide, new dedicated blockchain based Cryptobanks will take their place in the Cryptoeconomy.
The following table provides just a few examples of the advantages of a new blockchain bank compared to any leading traditional bank.
It is Crypterium’s strong belief that no single blockchain bank will dominate the new Cryptocurrency
banking sector, but rather that a network of new innovative players will drive the market forward and
that within the next 10 years, roughly the same length of time that Bitcoin has been in existence, the
leading blockchain Cryptobanks will be challenging the leading traditional banks for control over the
Cryptoeconomy.

Mobile Cryptobank

Mobile Contactless Payment

Physical bank branches, plastic payments cards, your personal neighbourhood banker, are all things
of the past. Now everything is digital, mobile and contactless. Crypterium is building a new digital
solution to Cryptocurrency era, that does mostly the same things as the current mobile bank providers, but faster, cheaper, safer using cryptocurrency on the decentralised blockchain.
As soon as a customer downloads the Crypterium mobile banking App customers will be able to start
to make transactions in current VISA, Mastercard or UnionPay infrastructure practically instantly.
Gone are the days when you need to apply for a debit card and wait weeks for it to be delivered.
Customers will be able to instantly pay in certain major cryptocurrency (at least BTC and ETH) or in
ERC20 standard tokens for any product or services at any POS terminals (there are already over 42
million installed throughout the world) that are fitted with NFC (near field communication) via the
Crypterium mobile banking App.
Crypterium uses NFC HCE (host card emulation) protocols to tokenise the data on the virtual payment card and in turn the POS terminal reads the connections as if it were a standard plastic card.
Practically any NFC payment service, such as Apple Pay, Samsung Pay, Google Pay and a host of
other providers, can now be used to pay with cryptocurrencies and as far as the retailer or online store is concerned, they are paid in the currency of their payment order. This capability possibly extends to ATM cash withdrawals and most other standard banking activities.
Today it is practically impossible to pay for your daily coffee, the morning newspaper, or your utility
bill with cryptocurrency. Of course, a cryptocurrency owner could make an exchange of cryptocurrency on one of the exchanges, wait for confirmation that it is completed, then wait for the
transfer of funds to their nominated account and so on. But who in all reality would do that to buy a
coffee? With Crypterium’s mobile banking app that changes instantly. The Crypterium mobile
banking app does all of that for the customer. From any cryptocurrency that are preselected by the
user in Crypterium App, perhaps in different percentages depending on their current trading value,
Crypterium does all the communication and ultimately conversion to and payment in fiat without the
user having to do anything other than bring up their smartphone to the NFC terminal and press go.
Only the exact number of cryptocurrency in the order and ratio prescribed are exchanged to meet the
payment needs.

Crypterium Cryptobank Functionality

Software for IOS, Android or Windows Phone smartphones or tablets with “standard everyday
services”, providing opportunity to use (get and transfer certain cryptocurrencies, including BTC and
ETH), and conduct settlements related to fiat currencies. Examples of such services are:
  •  Transactions in current infrastructure of trade and services outlets all over the world via international payment system (VISA, Mastercard for example)
  • Transactions in infrastructure of trade and services outlets connected to Crypterium or being Crypterium partners’ infrastructure
  • Replenishment of personal card or bank account
  • International transfers to cryptocurrency accounts or bank accounts, including bank cards, without restrictions (other than those applied for anti-money-laundering purposes)
  • Special offers for Crypterium’s users in Crypterium partner shops
This type of functionality is planned to be available for use in December 2017 – January 2018

Crypterium Token - CRPT

Crypterium token CRPT – is the core of all transactions made in Crypterium banking platform. No
payment can be conducted without CRPT, its main goal, regulated by smart-contract, is to stimulate
tokenholders to use Crypterium in their daily life, and to attract new users to Crypterium. The only
issue of CRPT tokens will be during the ICO, which in fact is the pre-sale of Crypterium services usage opportunity. Crypterium in future is planning to list its tokens on cryptocurrency exchanges to
enlarge userbase and fulfil users’ expectations to provide the most comprehensive services.

Road map

The achievement of all goals is laid out in this roadmap. We are continually working to meet deadlines, but if delays are required to maintain high standards, the timeline will be be adjusted as necessary.


For More Information :

Website                 : https://crypterium.io/
Whitepaper          : https://crypterium.io/wp/index.html?v=1.01
ANN                      : https://bitcointalk.org/index.php?topic=2214098.0
Twitter                  : https://twitter.com/crypterium
Telegram               : https://t.me/crypterium
Register for ICO  : https://tokensale.crypterium.io/


Minggu, 17 Agustus 2014

ARRAYLIST DAN VECTOR

Array


Array adalah kelompok variabel dengan tipe sejenis dan dinyatakan dengan nama yang sama . dengan kata lain, array merupakan tipe khusus yang menyatukan sekelompok variabel dengan tipe yang sama . Array di java dideklarasikan dengan kurung siku : [ .. ]
Pada java tidak perlu menspesifikasikan ukuran array kosong saat mendeklarasikan array. Kita harus selalu menyatakan ukuran array secara eksplisit saat melakukan operasi penciptaan menggunakan operator new () atau dengan mendaftarkan item item untuk array pada saat penciptaan.
Sintaks umum deklarasi variabel array 1 dimensi :
             type var-name[];   atau   type[] var-name ;

Pendeklarasian array dua dimensi adalah sebagai berikut :
tipe namaArray[];    atau     tipe[][] namaArray;
Contoh program array  pada praktikum :
Program 1 :
package praktikumarray;
public class arrays {
      int []x= new int[6];
      System.out.println("panjang array : "+x.length);{
      for ( int i= 0; i<x.length;i++){
            x[i]=i+1;
      }
      for ( int i= 0; i<x.length;i++){
            System.out.println("x["+i+"]="+x[i]);   
      }
}
}
Program 2 :
package praktikumarray;
public class arraytangga {
      public static void main(String[] args) {
            int[][] sel = new int[4][];
            for (int i=0; i<sel.length;i++)
                  sel [i] = new int [i+1];
                  for (int i=0; i<sel.length; i++)
                        for (int j=0; j<sel[i].length;j++)
                              sel [i][j]=i+j;
                              for (int  i=0; i<sel.length;i++){
                                    for (int j=0; j<sel[i].length;j++){
                                          System.out.println(sel[i][j]+"");
                                          System.out.println("");
                                    }
                              }
      }
}
Program 3:
package praktikumarray;
public class respon3 {
      public static void main(String[] args) {
            String[] respon = new String [4];
            respon[0]= "praktikum";
            respon[1]= "array";
            respon[2]= "hari tanggal";
            respon[3]= "27/4/2013";
            int i;
            for (i=0; i<respon.length;i++){
                  System.out.println(""+respon[i]);
      }
      }
}
Program 4:
package praktikumarray;
public class respon {
      int[][]respon;{
      respon = new int [5][3];
      int i,j;
      for(i=1; i<3;i++){
            for(j=0;j<3;j++){
                  respon [i][j]=1;
                  System.out.println(respon[i][j]+" ");
                  System.out.println("");
            }
      }
}
}




 ArrayList


ArrayList adalah array dinamis yang bisa digunakan jika kita membutuhkan array dengan batas maksimum yang tak terbatas. Pada Java, setiap kelas adalah kelas turunan dari kelas yang bernama Object. Artinya setiap objek dapat dirujuk oleh variabel bertiipe Object. Semua objek dapat dimasukkan dalam array bertipe Object[]. Jika suatu subrutin memiliki parameter formal bertipe Object, maka objek apapun bisa diberikan kepada subrutin tersebut.ArrayList disimpan dalam paket java.util, jadi jika kita ingin menggunakan kelas ArrayList dalam sebuat program, kita harus memberikan "import java.util.ArrayList;" atau "import java.util.*;" di awal program kita.

format penulisan ArrayList : ArrayList<Kelas> nama_variable = new ArrayList<Kelas>();

Contoh array list pada praktikum :

package praktikumarray;
      import java.util.ArrayList;
      public class arraylists {

            public static void main(String[] args) {
            ArrayList <String>data = new ArrayList <String> ();
            for (int i=0;i<10;i++){
                  data.add("data"+(i+1));
            }
            for (int i=0;i<10;i++){
                  System.out.println(data.get(i));
            }
      }
}        

Metode pada ArrayList :
daftar.size() -- Fungsi ini menghasilkan ukuran ArrayList saat ini. Posisi valid dalam daftar adalah yang bernomor 0 hingga daftar.size().
daftar.add(obj) -- Menambah objek di akhir ArrayList, kemudian menambah ukurannya dengan 1. Parameter obj merujuk pada objek dengan tipe apapun, atau bisa bernilai null.
daftar.get(N) -- Mengambil nilai yang disimpan pada posisi N pada ArrayList. N harus bertipe bilangan bulat antara 0 hingga daftar.size() - 1.
daftar.set(N, obj) -- Mengisi suatu objek obj di posisi N dari suatu ArrayList, dan mengganti apapun yang sudah disimpan sebelumnya pada posisi N.
daftar.remove(obj) -- Jika objek tersebut ada di dalam ArrayList, maka objek tersebut akan dibuang.
daftar.remove(N) -- Untuk bilangan bulat N, maka perintah ini akan menghapus posisi ke-N pada ArrayList. N harus berada pada rentang 0 hingga daftar.size() - 1.
daftar.indexOf(obj) -- Fungsi untuk mencari suatu objek obj di dalam ArrayList.
Contoh array list dengan menggunakan metode pada praktikum :
package praktikumarray;
import java.util.Vector;
public class cobaarray {

    
      public static void main(String[] args) {
            Vector<String> udin = new Vector<String>();
            udin.add("A");
            udin.add("B");
            udin.add("C");
            udin.remove(0);
            System.out.println(udin);
}
}

Vector

Menggunakan Vector mirip dengan menggunakan ArrayList. Perbedaannya adalah nama metode yang berbeda untuk melakukan tugas yang sama, atau nama metode yang berbeda untuk melakukan tugas yang sama. Seperti ArrayList, suatu Vector mirip dengan array Object yang bisa berkembang jika diperlukan. Konstruktor new Vector() membuat vektor tanpa elemen.

Metode pada vector diantaranya :
ü  vec.size() adalah fungsi untuk mengembalikan jumlah elemen di dalam vektor.
ü  vec.addElement(obj) akan menambahkan Object obj di akhir vektor.
ü  vec.removeElement(obj) menghapus obj dari dalam vektor, kalau ada.
ü  vec.removeElementAt(N) menghapus elemen ke-N. N harus berada pada rentang 0 hingga vec.size() - 1. Sama
ü  vec.setSize(N) akan mengubah ukuran vektor menjadi N. Jika di dalam vektor terdapat elemen yang jumlahnya lebih banyak dari N, maka elemen lainnya akan dihapus.
Contoh program menggunakan vector pada praktikum :
package praktikumarray;
import java.util.Vector;
public class vectors {
      public static void main(String[] args) {
      vectors<Integer>vec = new vectors<Integer>();
      vec.add(22);
      vec.add(10);
      vec.add(15);
      System.out.println("jumlah elemen vektor : " +vec.size());
      System.out.println("cetak isi vektor : ");
      for ( int i=0;i<vec.size();i++){
            System.out.println(""+vec.get(i));
      }
      }

}

MULTITHREADING

Multithreading digunakan untuk aktifitas-aktifitas yang berbasis pada thread. Hal ini berarti dalam satuprogram atau aplikasi tertentu , kita dapat menjalankan lebih dari satu thread secara bersamaan. Sebagai contoh, asumsikan kita sedang menggunakan aplikasi word processor. Pada saat yang sama kita juga melakukan formatting teks dan sekaligus melakukan proses pencetakan dokumen. Hal ini bisa terjadi karena pekerjaan formatting teks dan proses pencetakan disimpan didalam thread yang terpisah.
Pada multithreading satu ruang memori digunakan secara bersama-sama oleh setiap thread yang ada. Gambar dibawah akan mengilustrasikan konsep multithreading didalam java.
                                                                                          







PACKAGE

Package atau Paket adalah suatu namespace atau ruang yang digunakan untuk membungkus kelas-kelas dan interface –interface yang kita buat dalam program kita. Paket yang kita buat selanjutnya dapat diimpor ke dalam kode program untuk digunakan sesuai dengan kebutuhan .

Java mengizinkan adanya pembuatan paket uang berguna sebagai tempat  dari kelas-kelas maupun interface-interface yang kita buat. Kegunaan utama paket adalah untuk  menGindari adanya kesamaan nama pada kelas-kelas yang dibuat.

MEMBUAT PACKAGE / PAKET
Cara membuat paket sangatlah mudah, yaitu cukup dengan menggunakan statement package diikuti dengan nama paket yang digunakan di bagian paling atas dari file kode yang kita tulis. Berikut adalah pendefinisian umum paket didalam baris paling atas dari kode program yang kita buat :


Package NamaPaket;

Jumat, 15 Agustus 2014

Polimorfisme (Banyak Bentuk)

Polimorfisme merupakan kemampuan suatu objek untuk mengungkapkan banyak hal melalui satu cara yang sama. Polimorfisme merupakan salah satu hal penting dalam konsep pemrograman berbasis objek karena alasan berikut : Polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah method general (bersifat umum ) untuk semua kelas turunannya, dan selanjutnya kelas-kelas turunan dapat memperbaharui implementasi dari method tersebut secara lebih spesifik sesuai dengan karakteristiknya masing-masing.

Untuk mempermudah dalam memahami konsep polimorfisme. Marilah kita perhatikan contoh kodingan dibawah ini :
Ketika dijalankan, program diatas akan memberikan hasil berikut :


Inheritance (Pewarisan Sifat Objek)

Pewarisan (inheritance) adalah salah satu ciri pemrograman berorientasi objek, yang menyatakan bahwa suatu kelas dapat diturunkan lagi menjadi kelas-kelas baru lainnya. Sehingga dapat membentuk sebuah hirarki.


  • Dasar Pewarisan: Superclass dan Subclass

Java mengizinkan kita untuk mendefinisikan suatu kelas bersifat generik. Selanjutnya, kelas tersebut dapat diturunkan lagi menjadi kelas baru dengan sifat yang lebih spesifik. Dalam terminologi Java, kelas induk yang diturunkan disebut superclass dan kelass baru hasil turunan disebut subclass.




  • Membuat Kelas Turunan (Subclass)
Java menyediakan kata kunci extends yang digunakan untuk melakukan proses penurunan terhadap suatu kelas. Bentuk umum dari penggunaan kata kunci tersebut adalah :

class nama-subclass extends nama-superclass{
        //badan kelas
}


Class dan Object

Kelas dan Objek

Merupakan sebuah inti dari pemprograman Java. Why ? sebab, Java adalah bahasa pemrograman yang mendukung dan mengimplementasikan konsep pemrograman berorientasi objek sepenuhnya. 

Kelas

Kelas dapat didefinisikan sebagai cetak biru (blueprint ) atau kerangka yang mendefinisikan variabel-variable (data) dan method-method (perilaku) umum dari sebuah objek tertentu, secara mudah kelas adalah representasi dari sebuah objek.

Mendefinisikan Kelas :

- dalam Java, didefinisikan dengan kata kunci class.
   class NamaKelas{
       tipe data1;
       tipe data2;
       ....
       tipe dataN;
       
       tipe method1(daftar-parameter){
      // kode untuk method1
        }
       tipe method2(daftar-parameter){
      // kode untuk method2
        }
        tipe methodN(daftar-parameter){
      // kode untuk methodN
        }