E-Commerce dan E-Business
Z
Istilah
e-bussiness pertama kali diciptakan dalam kampanye tematis oleh IBM pada 1997
dan setelah itu di artikan sebagai “sebuah pendekatan yang aman, fleksibel dan
terintegrasi untuk mengirimkan nilai bisnis yang dibedakan dengan menggabungkan
sistem dan proses yang menjalankan operasi utama bisnis dengan kesederhanaan
dan dapat dicapai dengan teknologi internet”. Sebelum mengeluarkan definisi
tersebut, istilah e-bussiness dan e-commerce sering tertukar. Pengeluaran
definisi formal ini menandai datangnya zaman pemakaian internet dan
teknologinya melampaui fungsi dari e-commerce dan meliputi fungsi lain seperti
e-marketing, e-franchising, e-mailing, dan banyak lagi. Singkatnya, e-bussiness
adalah kegunaan dari penyebaran teknologi untuk meningkatkan nilai pelanggan ,
sedangkan e-commerce merupakan kegunaan dari terciptanya pertukaran melalui
media digital.
WWW
merubah pandangan lama dari lingkungan bisnis menjadi marketplace yang lebih
dari sekedar marketspace. Marketspace ini adalah lingkungan pertukaran
elektronik berbasis informasi dan komunikasi yang dihuni oleh computer canggih
dan teknologi telekomunikasi. Akibat dari digitalisasi adalah bukti dalam
perubahan berikut :
- Isi transaksi yang berbeda – informasi tentang produk terkadang digantikan oleh produk itu sendiri.
- Konteks transaksi yang berbeda – sebuah layar elektronik menggantikan transaksi tatap muka.
- Kemungkinan infrastruktur dari transaksi yang berbeda – infrastruktur komunikasi iklan computer mungkin menggantikan bentuk sumberdaya fisik khususnya jika penawaran itu sendiri memberikan format digital.
Sementara
hal-hal yang dipaparkan diatas merubah dinamika bisnis secara fundamental,
banyak minat dilingkup WWW muncul dari kepercayaan bahwa WWW dan marketspace
yang menghasilkan memiliki potensi yang lebih besar untuk penciptaan harga.
Dalam marketspace desakan waktu, tempat
dan batasan-batasan geografis dihilangkan seutuhnya. Wirausahawan saat ini
memiliki kemampuan untuk menyediakan informasi kepada para pelanggan yang
membutuhkan, sementara memiliki kemampuan untuk melakukan transaksi bisnis
setiap waktu dengan pelanggan yang mungkin tersebar secara georafis.
Contoh-contoh dari fleksibilitas ini adalah bukti dalam pengalaman niaga
seperti Amazon.com, yang melaporkan bahwa lebih dari 20% penjualannya ke para
pelanggan diluar Amerika Serikat dan REI (sebuah retail perlengkapan alat
rekreasi luar ruangan) yang melaporkan 35% dari penjualannya di adakan antara
pukul 10 malam hingga pukul 7 pagi.
Dampak
positif dari e-commerce:
- Adanya kemudahan dan efektifitas dalam melakukan transaksi.
- Menghemat biaya sewa tempat usaha karena dapat dilakukan mesti dirumah.
- Mempunyai jaringan pemasaran yang lebih luas.
- Pembeli dapat membandingkan harga antara suatu produk dengan produk lainnya secara lebih cepat.
- Membuat aktivitas belanja menjadi lebih pintar karena menuntut ketelitian pembeli dan penjual dalam melakukan transaksi.
- Tidak mengharuskan pembeli untuk mengantri.
- Menawarkan lebih banyak pilihan.
Dampak
negatif dari e-commerce:
- Rawannya penipuan.
- Kurangnya kesesuaian jaminan kualitas karena pembeli tidak melihat langsung baran atau jasa yang ditawarkan.
- Rentan terhadap keterlambatan atau kesalahan dalam pengiriman.
- Membutuhkan website dengan kualitas baik.
- Membutuhkan perlindungan data yang baik karena selama transaksi pengunjung perlu mengakses dan menukarkan data.
- Membutuhkan biaya ekstra untuk menyiapkan perangkat dan koneksi internet yang baik.
- Kurangnya interaksi dengan pembeli.
E-BUSSINESS
Dampak
positif dari e-bussiness adalah
- Aliran pendapatan baru yang mungkin lebih menjanjikan yang tidak bisa ditemui dengan sistem transaksi konvensional.
- Dapat meningkatkan market exposure.
- Menurunkan biaya operasional.
- Melebarkan jangkauan pasar.
- Meningkatkan kesetiaan kostumer.
- Meningkatkan manajemen supplier.
Dampak
negatif e-bussiness:
- Kehilangan segi financial secara langsung karena kecurangan. Seorang penipu mentransfer uang dari rekening satu ke rekening lainnya atau dia telah mengganti semua data financial yang ada.
- Pencurian informasi rahasia yang berharga. Gangguan yang timbul bisa menyingkap semua informasi rahasia tersebut kepada pihak-pihak yang tidak berhak dan dapat mengakibatkan kerugian yang besar bagi si korban.
- Kehilangan kesempatan bisnis karena gangguan pelayanan. Kesalahan ini bersifat kesalahan non-teknis seperti aliran listrik tiba-tiba padam.
Tugas SoftSkill 3 : Pengantar Teknologi Game (Puzzle)
Flowchart

Gambar
3.1 Flowchart
Pertama kali saat program
dijalankan, menu untuk memilih gambar akan muncul untuk memberikan pilihan
kepada pengguna puzzle dengan gambar
apa dan ukuran berapa yang ingin dipecahkan oleh pengguna. Kemudian setelah
pengguna memilih gambar yang diinginkan beserta ukurannya, maka pengguna akan
diarahkan ke dalam papan bermain puzzle.
Timer akan menghitung mundur dari
tiga sebelum puzzle di acak dari
bentuk aslinya, sehingga pengguna punya waktu tiga detik untuk melihat wujud
asli dari puzzle.
Game tidak akan berhenti sebelum
permainan diselesaikan oleh pemain atau pemain mengganti puzzle yang ingin dimainkan. Jika pemain menyelesaikan puzzle, Game akan memunculkan tampilan
hasil bermain pemain.
Story Board

Gambar
3.2 Story Board
Secara teknis program berjalan
berawal dari menu kemudian berpindah ke papan bermain dan tampilan hasil
bermain.
Rancangan Aplikasi
Dalam pembuatan aplikasi,
perancangan yang dilakukan penulis secara teknis terbagi menjadu dua yaitu,
perancangan program atau fungsi program dan perancangan tampilan.
Rancangan Tampilan
Permainan Puzzle yang penulis buat memiliki tiga buah tampilan, yaitu
tampilan menu awal, tampilan papan bermain dan tampilan hasil bermain.
Tampilan Awal

Gambar
3.3 Tampilan Menu
Pada tampilan awal pengguna akan
dihadapkan dengan enam buah gambar yang sudah disiapkan sebagai bawaan
aplikasi. Masing-masing gambar juga memiliki dimensi yang berbeda-beda. Dimensi
gambar yang berbeda-beda ini mewakili tingkat kesulitan puzzle yang akan dimainkan oleh pemain. Ketika pemain sudah
memilih, pemain akan diarahkan ke dalam papan bermain.
Tampilan Papan Bermain

Gambar
3.4 Tampilan Papan Bermain
Dalam tabel papan bermain, pemain
akan dihadapkan oleh gambar yang sudah dipilih pemain. Pemain dapat melihat
potongan gambar tersebut dengan urutan yang benar selama tiga detik. Game akan
menghitung mundur dan pada akhir hitungan potongan gambar akan teracak dan
permainan pun dimulai. Setiap potongan gambar yang dipindahkan oleh pemain akan
dihitung, sehingga di akhir pemain dapat melihat banyak langkah yang dibutuhkan
oleh pemain untuk menyelesaikan gambar yang dimainkan.
Tampilan Menang

3.5
Tampilan Menang
Pada tampilan hasil bermain, pemain
akan melihat puzzle dengan urutan
yang benar beserta jumlah langkah yang dibutuhkan oleh pemain untuk
menyelesaikan puzzle tersebut.
Kode Program
Untuk dapat menjalankan
fungsi-fungsi dari permainan, dibutuhkan beberapa baris kode program yang dapat
bereaksi sesuai dengan fungsi yang akan dijalankan. Beberapa baris program
itupun dikelompokkan ke dalam masing-masing file yang disebut class dalam java, agar tidak tercampur
baur antara fungsi yang satu dengan fungsi yang lain.
Application.java
public class
Application extends android.app.Application{
public Future<?>
submitBackgroundTask(Runnable task) {
return getBackgroundThreads().submit(task);
}
public <T> Future<T>
submitBackgroundTask(Callable<T> task) {
return getBackgroundThreads().submit(task);
}
public void onActivityDestroy(Activity
activity) {
activities.remove(activity);
if (activities.isEmpty())
onTerminate();
}
protected ExecutorService
getBackgroundThreads() {
if (null == backgroundThreads)
backgroundThreads =
Executors.newCachedThreadPool();
return backgroundThreads;
}
Pada saat pemain memilih gambar,
maka gambar tersebut harus dipanggil ke dalam papan bermain dari folder tempat
gambar tersebut disimpan. Selain dipanggil, gambar tersebut pun harus
ditampilkan dalam papan bermain. Untuk itu kelas ini akan memanggil dan
menampilkan gambar yang dipilh oleh pemain.
ImageConverter.java
public class
ImageConverter implements Runnable{
}
protected BitmapFactory.Options
prepareOptions() throws IOException {
InputStream pictureData = null;
try
{
pictureData = openInputStream();
BitmapFactory.Options bitmapInfo = new BitmapFactory.Options();
bitmapInfo.inJustDecodeBounds = true;
BitmapFactory.decodeStream(pictureData,
null, bitmapInfo);
pictureData.close();
pictureData = null;
int maxBitmapSize = bitmapInfo.outWidth;
if (maxBitmapSize <
bitmapInfo.outHeight)
maxBitmapSize = bitmapInfo.outHeight;
if (maxBitmapSize > maxFrameDim
&& (0 > maxFrameDim * 2 || maxBitmapSize >= maxFrameDim * 2))
{
bitmapInfo.inJustDecodeBounds = false;
bitmapInfo.inSampleSize = (maxBitmapSize -
1) / maxFrameDim + 1;
return bitmapInfo;
}
else
return null;
}
finally
{
if (null != pictureData)
try { pictureData.close(); } catch
(Exception ignored) {}
}
}
protected InputStream openInputStream()
throws FileNotFoundException
{
if (null != imageURI)
return context.getContentResolver().openInputStream(imageURI);
else
return
context.getResources().openRawResource(imageResource);
}
public void setImageId(Serializable imageId)
{
if (imageId instanceof Integer)
{
this.imageResource = (Integer)imageId;
this.imageURI = null;
}
else
setImageURI(Uri.fromFile(ImageSource.imageFileForId((String)imageId,
context)));
}
Pada kelas ini, gambar yang dipilih
sebelumnya akan di convert ke dalam
format bitmap pada canvas android. Tujuannya supaya gambar pada sumber tidak
berubah dan dapat diproses dalam program menjadi beberapa potongan.
Board.java
public class
Game implements MoveListener, TileOnTargetListener{
public void updateImageSize(Context context)
throws
ImageProcessingException
{
if (null == selectedImageId)
throw new IllegalStateException("No
image selected");
try
{
// BitmapFactory.Options request = new
BitmapFactory.Options();
// request.inJustDecodeBounds = true;
//
BitmapFactory.decodeResource(context.getResources(), selectedImageId,
request);
// if (0 <= request.outWidth && 0
<= request.outHeight)
Bitmap fullImage = loadFullImage(context);
if (null != fullImage)
imageAspectRatio = //
(float)request.outWidth / request.outHeight;
(float)fullImage.getWidth()
/ fullImage.getHeight();
else
imageAspectRatio = Float.NaN;
}
catch (Resources.NotFoundException e)
{
throw new
ImageProcessingException("Resource not found: 0x"
+
Integer.toHexString((Integer)selectedImageId), e);
}
// if (null == fullImage)
if (Float.NaN == imageAspectRatio)
throw new
ImageProcessingException("Error loading image "
+ selectedImageId);
}
public void loadImage(final Context context)
throws ImageProcessingException
{
if (null == selectedImageId)
throw new IllegalStateException("No
image selected");
if (0 > tileHeight || 0 > tileWidth)
throw new IllegalStateException("Target
size is not set");
// load and scale the image
final int boardSize = board.getSize();
try
{
Bitmap fullImage = loadFullImage(context);
if (null == fullImage)
throw new
ImageProcessingException("Error loading image "
+ selectedImageId);
scaledImage = Bitmap.createScaledBitmap(
fullImage, tileWidth * boardSize,
tileHeight * boardSize, false);
}
catch (Resources.NotFoundException e)
{
throw new
ImageProcessingException("Resource not found: 0x"
+
Integer.toHexString((Integer)selectedImageId), e);
}
// slice the image
board.forEachTile(new Board.TileHandler() {
public void processTile(Tile tile)
{
Drawable image;
if (0 == tile.getNumber())
image = new
ColorDrawable(context.getResources().getColor(R.color.blank_tile));
else
{
Bitmap slice = Bitmap.createBitmap(
scaledImage,
tileWidth * tile.getTargetColumn(),
tileHeight * tile.getTargetRow(),
tileWidth,
tileHeight
);
image = new
BitmapDrawable(context.getResources(), slice);
}
tile.setDrawable(image);
}
});
Gambar yang sudah di convert sebelumnya akan tampilkan dalam
bentuk bitmap sementara, kemudian dipotong serta di acak agar dapat dimainkan
oleh pemain. Dalam papan bermain juga terdapat beberapa menu untuk kembali ke
menu awal, mengacak kembali puzzle,
juga pilihan level berdasarkan dimensi gambar.
Move.java
public enum
Move{
UP(false, -1), LEFT(true, -1), DOWN(false, 1),
RIGHT(true, 1);
public boolean isHorizontal() {
return horizontal;
}
public boolean isVertical() {
return !horizontal;
}
public int getAmount() {
return amount;
}
@Override
public String toString() {
return name().toLowerCase() + "
move";
}
private Move(boolean horizontal, int amount) {
this.horizontal = horizontal;
this.amount = amount;
}
private boolean horizontal;
private int amount; }
Potongan gambar yang sudah terbentuk
harus dapat digerakkan agar dapat disusun oleh pemain. Selain digerakkan,
potongan gambar perlu dihitung agar di akhir permainan pemain dapat mengetahui
berapa banyak langkah yang diperlukan oleh pemain untuk menyelesaikan puzzlenya. Kelas ini berfungsi untuk
mengaktifkan fungsi tersebut.
3.3.2.5 YouWin.java
public class
YouWin extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
TextView stats =
(TextView)findViewById(R.id.text_puzzle_solved);
final Intent intent = getIntent();
final int moveCount =
intent.getIntExtra(EXTRA_MOVE_COUNT, 0);
final String template =
getResources().getString(R.string.text_puzzle_solved);
Formatter format = new
Formatter().format(template, moveCount, 1 == moveCount ? "" :
"s");
stats.setText((CharSequence)format.out());
if
(intent.hasExtra(ImageSelection.EXTRA_SELECTED_IMAGE_ID_KEY)) {
initImageView(intent.getSerializableExtra(ImageSelection.EXTRA_SELECTED_IMAGE_ID_KEY));
findViewById(R.id.congratulations_picture).setOnClickListener(this);
}
else {
final View button =
findViewById(R.id.next_puzzle_button);
button.setVisibility(View.VISIBLE);
button.setOnClickListener(this);
}
findViewById(R.id.text_puzzle_blurb_2).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
final Uri url =
Uri.parse(getResources().getString(R.string.text_puzzle_blurb_url));
Intent call = new
Intent(Intent.ACTION_VIEW, url);
startActivity(call); }
} ); }
Pada akhir permainan, bila pemain
dapat menyelesaikan puzzle maka akan
terlihat gambar puzzle yang pemain
selesaikan serta jumlah langkah yang diperlukan oleh pemain untuk menyelesaikan
puzzle. Sebuah dialog akan muncul
untuk menanyakan apakah pemain ingin bermain kembali atau tidak.
Implementasi
Pada tahap ini, program sudah dapat
berjalan dengan segala fungsinya. Untuk mengoreksi kesalahan dan bug pada
program, maka diperlukan percobaan dalam menjalankan program.
Menu Gambar

Gambar
3.6 Menu
Dalam tampilan ini dapat dilihat
bahwa program menampilkan enam buah gambar yang berbeda serta dalam dimensi
yang berbeda. Dimensi yang berbeda menunjukkan tingkat kesulitan yang berbeda
dari tiap puzzle. Pemain juga dapat
memilih sendiri gambar yang ingin dipecahkan dari folder penyimpanan gambar device milik pemain.
Papan Bermain

Gambar
3.7 Papan Bermain
Gambar yang dipilih akan diacak
dalam waktu tiga detik setelah potongan gambar dengan urutan yang sebenarnya
ditampilkan. Setelah diacak, puzzle
baru dapat bereaksi akan sentuhan dari pemain. Potongan puzzle yang dapat bergerak hanya yang bersebrangan langsung dengan
ruang kosong dari puzzle, sehingga pemain harus dapat merapihkan potongan gambar
sesuai dengan urutan aslinya dengan keterbatasan ruang gerak. Permainan hanya
akan berakhir jika pemain memilih untuk kembali ke menu awal atau menyelesaikan
puzzle.
Output Menang

Gambar
3.8 Menang
Permainan yang berakhir dengan cara
pemain menyelesaikan puzzle, akan
menampilkan skor yang berbentuk jumlah perpindahan potongan gambar yang
dilakukan oleh pemain.

