HackeD By TeaM_CC :: sec_d@rK WAS HERE

Hacked By TeaM_CC :: sec_d@rK WAS HERE

Your Security breached ….
No security is perfect
Facebook.com/cyber.command0s

[+]Team_CC[+]
Posted in Information Technology Valuation | 1 Comment

Information Technology Valuation [VII]

  1. 1. Dari pengetahuan sdr. Apakah perusahaan perusahaan di Indonesia sudah menerapkan / mengimplementasikan semua tipe aktivitas penyediaan IT ? Apa sebabnya / alasannya ?

Menurut saya perusahaan-perusahaan di Indonesia sudah menerapkan semua tipe aktifitas penyedia IT, terutama pada perusahaan-perusahaan besar dan kebanyakan perusahaan mengadopsi beberapa bentuk struktur manajemen IT federal, dimana tanggung jawab IT kepada unit-unit bisnis, aktivitas pengembangan arsitektur IT untuk unit-bisnis dan turunan-turunan rencana IT unit bisnis menjadi aktivitas masing-masing unit bisnis. Meskipun beberapa bentuk Kepemimpinan fungsional korporasi untuk strategi IT dan arahan unit-unit ditempatkan terpusat untuk pemungkinan system informasi korporat dari group yang saling terhubung. Semua ini penting untuk kordinasi dan komunikasi internal dalam korporasi serta yang lebih luas dengan para pemasok dan pelanggan. Standar korporat, menjamin keterhubungan dan menghindarkan teknologi menjadi kendala pada perubahan organisasi. Dalam struktur ini, pengenalan penggunaan IT yang inovatif dan penelitian perkembangan teknologi dilaksanakan terpusat dengan pertimbangan yang strategis. Struktur manajemen IT federal ini, mengarahkan kepada enam kumpulan aktivitas yang saling terkait dari aktivitas manajemen IT dan penyediaan IT.

  1. 2. Bentuk / struktur organisasi penyedia IT, yang mana yang diterapkan oleh perusahaan dimana sdr bekerja ? Atau rata-rata perusahaan di Indonesia ?

Meurut saya sebagian besar/rata-rata perusahaan di indonesia menerapkan ke tiga struktur manajeman dalam mejalankan proses bisnisnya. Mulai dari struktur Manajemen Infrastruktur IT dan operasi IT, yang mana dapat ditempatkan pada level unit-bisnis, tetapi dengan pertimbangan skala ekonomi serta kemudahan dalam pengendalian korporasi dan konsistensi dengan standar arsitektur banyak perusahaan men-share aktivitas ini. Unit pusat layanan dan penyedia IT luar diperlakukan sebagai penyedia servis atau layanan kepada unit-unit bisnis. Kemudian Pengembangan, implementasi, dan perawatan aplikasi IT, aktivitas ini dapat ditempatkan pada level bisnis atau dapat juga dilakukan di pusat, unit penyedia layanan bersama (shared service provider), atau oleh penyedia / pemasok dari luar, atau campuran dari ketiganya. Sedangkan

untuk pengembangan aplikasi kebayakan dilaksanakan tersebar untuk lebih mendekatkan kepada user, sementara untuk aktivitas perawatan dilakukan secara terpusat oleh penyedia layanan. Dan yang terakhir adalah Pelayanan para user IT, yang mana bisa/dapat dilaksanakan baik sebagai bagian dari aktivitas unit bisnis ataupun pada unt penyedia layanan bersama /share.

  1. 3. Sebut dan jelaskan ukuran-ukuran kinerja manajemen penyediaan IT , secara teoritis ? Mana yang paling mudah / mungkin untuk diaplikasikan ?

Ada 5 ukuran kinerja manajemen penyedia IT yaitu : IT Supply Management, Account Management, IT Development Management, IT Infrastructure Management dan Client Support.

Ukuran-Ukuran dari IT Supply Management

Merupakan Konsep dalam menjalankan penyediaan/layanan IT sebagai bisnis, dilakukan dengan cara mengadopsi praktik-praktik organisasi pelayanan yang profesional agar dapat bersaing dan survive. Selain menerapkan konsep organisasi komersial, dalam suatu hal juga dapat mengaplikasikan pusat-pelayanan in-house yang tidak boleh rugi dan tidak boleh untung, atau menerapkan profit centers yang diharapkan memperoleh keuntungan.

Ukuran-Ukuran dari Account Management

Fungsi dan tugas tanggung jawab manajemen akun harus dapat membangun dan mengembangkan relasi yang baik dengan para pelanggannya dalam hal ini adalah para user serta mengupayakan agar mereka tetap terpuaskan. Karena tujuan utama dari manajemen akun adalah memelihara dan mengembangkan relasi dengan pihak luar penyedia IT, maka ukuran-ukuran yang sesuai adalah yang didapatkan dari area-area orientasi pada pelanggan/user, diatas perspektif tiga lainnya dalam Balanced Score Card.

Ukuran-Ukuran dari IT Development Management

Kinerja manajemen pengembangan dan perawatan dapat diukur dengan pengukuran sejauh mana sasaran-sasaran yang diturunkan dari ekspektasi pelanggan dapat direalisasikan.

Ukuran-Ukuran dari IT Infrastructure Management

Aspek yang paling penting dalam manajemen infrastruktur adalah efisiensi penggunaan, karena bagian terbesar dari anggaran operasional penyedia IT adalah untuk infrastruktur. Seperti dalam manajemen pengembangan, manajemen infrastruktur dapat mencakup spektrum yang lebih luas dari peran penyediaan dan ketrampilan yang diperlukan.

seperti dalam Figure 7.4, dan ukuran-ukuran kinerja yang terkait. Efisiensi infrastruktur dari pusat data, merupakan fungsi dari portfolio aplikasi nya, dari suatu studi disimpulkan semakin baru portfolio aplikasinya ( ada update/tambahan aplikasi baru ) semakin tinggi efisiensi dari pusat-data, dengan asumsi tentunya tidak ada perubahan infrastruktu.

Ukuran-Ukuran dari Client Support

Dari beberapa penelitian tentang layanan – pelanggan IT, telah membuktikan pentingnya efektivitas melebihi kepentingan efisensi dari kegiatan-kegitan yang disediakan oleh penyedia IT untuk para pelanggan atau usernya.


  1. 4. Jika sasaran-strategis atau goals dari penyedia IT adalah ”menjadi penyedia yang responsif” , maka ukuran-ukuran kinerja yang cocok / pas apa saja ? ( dari semua perspektif )

Scorecard Perspektif Pelanggan dari Manajemen Pengembangan IT

Menjadi Penyedia IT yang responsif :

– Waktu-tanggap (response-time) untuk penyesuaian/ enhacements : jumlah jam/hari untuk perobahan kecil/ membetulkan kejadian yang dilaporkan

– Rerata waktu permulaan untuk merespon permintaanpermintaan aplikasi baru

– lama-waktu untuk menyerahkan proyek (perubahan besar dan pengembangan baru) : jumlah LineOfCodes atau Function Points per bulan (kalender)

Scorecard Perspektif Pelanggan dari Manajemen Infrastruktur IT

Menjadi Penyedia IT yang responsif :

– Waktu-tanggap atau response-time untuk transaksi on-line pada terminal per tipe transaksi (diklasifikasikan menurut kompleksitas)

– Lama waktu yang diperlukan job-job yang direncanakan secara reguler.

– Lamanya waktu job-job batch ad-hoc yang tidak direncanakan

Scorecard Perspektif Pelanggan dari Layanan-Pelanggan

Menjadi Penyedia IT yang responsif

– Jumlah jam per hari/minggu layanan-pelanggan dapat dihubungi

– rerata jumlah kring/detik sebelum staff menjawab panggilan

– rerata jumlah panggilan diabaikan per minggu

– rerata lamanya waktu sebelum staff layanan hadir ditempat sesudah permintaan layanan (lamanya menunggu kehadiran staff layanan)

– rerata lamanya waktu sebelum sesi pelatihan dilakukan, sesudah dimintakan.

– Rerata waktu tunggu user dalam pusat-layanan .

– Tingkatan statistik-layanan-informasi diserahkan per kelompok user.


  1. 5. Pertanyaannya yang sama, jika sasaran-strategis(goals)nya adalah ”menjadi pengembang yang berkualitas”  ?

Scorecard Perspektif Internal dari Manajemen Pengembangan IT

Menjadi Pengembang yang berkualitas :

– Jumlah kesalahan dalam unit-test dan integration-test per ukuran atai size

– ukuran/rating kualitas per staff-pengembangan : Design dan maintainbility

– ukuran/rating kualitas per staff operasional : Operablity

– ukuran/rating kualitas per EDP-Auditor : Auditability, security, dan controllability


  1. 6. Dari ke 6 key-success factor efisiensi infrastruktur, mana yang paling mudah dan mana yang paling sulit untuk di laksanakan, menurut pendapat sdr .? Beri alasannya ?

Menurut saya yang paling mudah  untuk dlaksanakan adalah Memanfaatkan skala ekonomis untuk mengurangi biaya hardware dan software, karena Dalam konsep ekonomi suatu perusahaan dikatakan mendapatkan skala ekonomis jika kenaikan input (resources) yang digunakan dalam produksi lebih kecil daripada kenaikan output (product /services) yang dihasilkan.

Dan yang paling sulit adalah Implementasikan perubahan-perubahan organisasi untuk mempromosikan kualitas, efisiensi dan pencegahan kesalahan. Karena dalam implementasi ini sangat sulit untuk merubah budaya dari setiap user/karyawan dalam suatu perusahaan dan bisa membutuhkan waktu yang lama, perubahan-perubahan dalam organisasi untuk mempromosikan kualitas, efisiensi dan pencegahan kesalahan tidak akan berjalan dengan baik jika tidak didukung oleh user/karyawan terkait. Sehingga proses jika implementasi ini gagal, maka proses bisnis tidak akan berjalan dengan baik.

  1. 7. Kalau dihubungkan dengan tahapan pengukuran manajemen infrastruktur, pada tahapan mana kira-kira perushaan dimana sdr. Bekerja berada ? (atau rata-rata perusahaan di Indonesia yang sdr tahu ?

Menurut saya jika dihubungkan dengan pengukuran manajemen infrastruktur pada perusahaan yang ada di indonesia maka pada perkembangan pengukuran manajemen infrastruktur, telah banyak diaplikasikan untuk pengukuran-pengukuran aktivitas lain penyediaan IT, dengan mempertimbangkan bahwa dari pandangan yang berbeda-beda, pengukuran-pengukuran dan komunikasi yang efektif dari hasil pengukuran di pilih atau tentukan. Pengukuran manajemen infrastruktur umumnya mengikuti perkembangan historis, dalam tahapan-tahapan yang secara periodik mengases efektivitas dan efisiensi, yang konsisten dengan peran-peran yang berbeda serta ketrampilan yang dibutuhkan, seperti tergambar dalam figure 7.4 , berhubungan dengan perspektif dari BSC :.

  • • Tahap pertama, perspektif internal
  • • Tahap kedua, perpektif pelanggan
  • • Tahap ketiga, inovasi dan pembelajaran, dan perspektif finansial.


  1. 8. Aspek-aspek apa saja yang perlu dimasukkan dalam pengukuran kapabilitas staff dalam menjalankan layanan kepada pelanggan ? Beri contoh ?

Kapabilitas karyawan, keterlatihan dan sikap kepedulian sangat menentukan keberhasilan yang harus dapat ditunjukkan melalui efektivitas komunikasi dan interaksi. dalam penyerahan layanan kepada pelanggan, dilakukan monitoring dan perbaikan secara berkelanjutan

.

Karyawan yang kapabel, yang banyak digunakan untuk menyebut berkualitas untuk melaksanakan tugas layanan kepada pelanggan di tunjukkan oleh kualifikasinya dalam :

• Ketrampilan-ketrampilan komunikasi yang baik : oral, listening, writing

• Ketrampilan teknis komputer, software dan pengetahuan sistem

• Orientasi pada layanan, pelanggan dan orang-orang atau people

• Sabar, rilek, tidak temperamen

• Bekerja yang baik meskipun dalam tekanan

• Pintar, mampu belajar dan berfikir logis

• Ketrampilan bertelepon yang baik

• Analitis yang baik, ketrampilan bertanya

• Bersahabat dan sebagainya.

Kegiatan layanan-pelanggan adalah semua ktivitas yang menyangkut end-user-computing, pusat-layanan (Information Center), call Center, user-education, user-training, help-desk dan lainnya.


  1. 9. Ukuran-ukuran untuk manajemen layanan pelanggan, mayoritas berhubungan dengan kapabilitas atau profesionalitas staff  layanan. Apa pendapat sdr.?

Ukuran-ukuran kinerja efektivitas dan efisiensi layanan pada pelanggan dalam hal ini para user digunakan untuk menunjukan seberapa pentingnya hubungan operasional antara pelanggan dengan penyedia IT dalam lingkungan usaha yang kompetitif. kunci keberhasilan dari layanan IT, sangat ditentukan oleh karyawan-karyawan yang mempunyai hubungan dan kontak langsung dengan pelanggan, sehingga hubungan langsung antara pusat data dan user harus menjadi perhatian dijaga serta dikembangkan dalam operasional layanan IT, agar dapat memuaskan para pelanggan yang kebutuhannya semakin meningkat.


10.  Bagaimana menurut sdr aplikasi/penerapan ukuran-ukuran dalam manajemen penyediaan atau supply IT ? Alasannya ?

Ukuran-ukuran kinerja dari penyedia IT, didasarkan pada tiga proses penyediaan IT yang mudah diukur dan dibandingkan secara independen dengan aktivitas-aktivitasnya organisasi. Kinerja unit IT, sebagai unit bisnis dapat diukur kinerjanya dengan menggunakan kerangka Balance Score Card, didasarkan pada aktivitas-aktivitas unit, yaitu : manajemen infrastruktur dan operasi,

manajemen pengembangan dan perawatan aplikasi serta manajemen layanan user yang dilengkapi dengan dua aktivitas manajemen akun yang bersumber dari marketing dan sales, serta manajemen agregat penyediaan IT.


———–0————

Posted in Information Technology Valuation | Leave a comment

Perancangan Strategi System Informasi [VIII]

  1. 1. Bagaimana menentukan potensi masa mendatang


Umtuk membangun potensi masa yang akan datang

Langkah kreatif untuk menghasilkan ide-ide tersebut termasuk dalam kategori :

high potential, atau

strategic

Analisis terhadap situasi saat ini mungkin menghasilkan kebutuhan aplikasi yang baru, pada setiap kuadran; meskipun kadang-kadang lebih kearah Key-Operational atau Support. Selanjutnya diperlukan langkah dalam konsolidasi antara aplikasi strategic dan high-potential dengan menentukan kebutuhan kearah bagaimana mengatasi weaknesses dari aplikasi Key- Operational dan Support tersebut.

CSF membantu menentukan bagaimana aplikasi strategic yang penting, sehingga aplikasi highpotential dapat menyediakan peluang-peluang baru, serta aplikasi Key-Operational dan Support dapat mengeliminasi kelemahan yang ada.


  1. 2. Bagaimana melakukan analisis rantai nilai eksternal dan internal


Analisa value chain internal untuk mengidentifikasi apa yang seharusnya dilakukan dan bagaimana caranya melakukan, oleh organisasi agar sasaran bisnis dapat dicapai. Analisis organisasi menggambarkan bagaimana struktur proses bisnis melakukan hal itu, dan jika mungkin dapat melihat adanya ketidak cocokan didalamnya. Apabila hal ini kurang diperhatikan

maka akan dapat berakibat diperolehnya gambaran yang tidak tepat.

Value chain juga memberikan kepada organisasi dasar yang jernih bagaimana setiap bagian dalam struktur organisasi berinteraksi, memahami berbagai terminologi yang berlaku didalamnya dan dapat menganalisis proses bisnis kunci dan aktifitas untuk akhirnya merumuskan berbagai persyaratan sistem yang diperlukan. Oleh sebab itu sangatlah penting dapat memahami dengan tepat manakah diantara proses tersebut merupakan primary activities, untuk melihat hubungan didalamnya. Selanjutnya sistem atau aplikasi yang dikembangkan akan lebih berdasarkan kepada

organisasi (proses bisnis) daripada erspektif value chainnya

– aliran informasi dalam industri dan bagaimana informasi kritikal sangat fungsional dalam industri dan mempengaruhi keberhasilan perusahaan dengan menentukan dimana, kapan informasi tersedia, siapa yang memiliki informasi tersebut dan bagaimana informasi tersebut dapat digunakan untuk meningkatkan keunggulan perusahaan

– informasi-informasi yang dapat atau mempengaruhi perpindahan antara customer, supplier dalam rantai nilai untuk meningkatkan kinerja bisnis, saling mempengaruhi dalam meningkatkan melalui shraing benefit

– seberapa efektif aliran informasi dari primary proses dan bagaimana digunakan,tergantung :

o pada setiap aktifitas yang perlu dioptimalkan kinerjanya

o menghubungkan aktifitas2 secara bersama dan menghilangkan biaya yang tidak perlu

o membuat aktifitas pendukung ikut berperan meningkatkan value, bukan menghalanginya

Posted in Perancangan Strategi System Informasi | Leave a comment

Perancangan Strategi System Informasi [VII]

  1. 1. Bagaimana cara menyelaraskan strategi investasi IS/IT dengan bisnis

Pengembangan strategi bisnis yang efektif sebaiknya dimulai dari tiap business area; lalu menggambarkan keterkaitan diantaranya, sehingga akhirnya akan diperoleh hasil rencana bisnis keseluruhan organisasi. Dan Pengembangan strategi bisnis dapat dilakukan dalam berbagai cara, tetapi, mungkin yang paling efektif jika organisasi dianggap sebagai suatu kelompok (strategis) unit usaha. Pertimbangannya  didasarkan pada: analisis situasi dan penilaian kompetitif, evaluasi pilihan strategis, dan alokasi sumber daya dinamis.

Contoh :  unit-bisnis marketing dapat dihubungkan dengan unit bisnis produksi dan lainnya; Selanjutnya diadakan analisis portfolio, misalnya dengan identifikasi dari masing-masing unit seberapa besar kontribusinya terhadap tingkat demand.


  1. 2. Jelaskan teknik analisis rantai nilai

Analisis rantai nilai adalah penilaian terhadap suatu aktivitas yang menghubungkan aktivitas lain dengan pemasok, pelanggan, pesaing sehingga perusahaan dapat menentukan tindakan apa yang mesti dilakukan, terutama berkaitan dengan pengembangan aplikasi. Analisis rantai nilai juga  menggambarkan aktivitas yang terjadi dalam bisnis dan menghubungkan aktivitas tersebut menjadi sebuah analisis dari kekuatan persaingan bisnis.

  1. 3. Jelaskan yang dimaksud dengan analisis rantai nilai eksternal

Analisis rantai nilai eksternal digunakan untuk mengidentifikasi entitas bisnis yang terkait dengan perusahaan. Tujuannya untuk merangkaikan hubung-an antara satu entitas dengan yang lain, melalui aliran-aliran produk, jasa dan/atau informasi yang keseluruhannya menjadi memberikan lingkup lingkungan eksternal perusahaan.

Pada ratai nilai eksternal agar memperoleh hasil yang maksimal, sumberdaya industri perlu diarahkan ke aktifitas yang memberikan pertambahan nilai produksi/jasa yang efisien serta memberi kepuasan bagi pelanggan. Bila informasi kurang sempurna, maka sumberdaya menjadi tidak efisien, hal ini berakibat bertambahnya biaya produksi tanpa memberikan dampak. peningkatan revenue; sebaliknya jika informasi cukup baik, selain proses produksi dan layanan lebih baik, maka akan meningkatkan profit perusahaan dibanding pesaingnya

http://docs.google.com/viewer?a=v&q=cache:_SFLfv–6a4J:puslit.petra.ac.id/journals/pdf.php%3FPublishedID%3DINF07080101+analisis+rantai+nilai+eksternal&hl=id&gl=id&pid=bl&srcid=ADGEESjE1bgsc77AhaqX_kR1VBJaGPbvo0kbfzvrB6GsbMGHd0L34Jk2lY6Ft2EX3JuZA9VBC0WKTp7JQYLID4t6ZdTrbnS71Q9I_Dp2dZEtuIkXarhyJHcz1WTxBNupRMG-1xALQGKs&sig=AHIEtbTAgp5J1am5JQGOEd5O_Tfh2XbVAw

  1. 4. Jelaskan rantai nilai internal

Value chain dalam perusahaan disebut rantai nilai internal, merupakan tools untuk menilai dan mencari cara meningkatkan operasional perusahaan. Analisis rantai nilai internal digunakan untuk mengidentifikasi proses-proses yang terjadi di dalam perusahaan dan memberikan margin tertinggi bagi konsumen. Dan dalam proses strategi IS/IT sebuah aplikasi harus mendukung fungsi bisnis dan dapat mengoptimalkan kinerja perusahaan. Secara keseluruhan seharusnya dapat menciptakan model bisnis baru agar operasi lebih efisien.

http://docs.google.com/viewer?a=v&q=cache:_SFLfv–6a4J:puslit.petra.ac.id/journals/pdf.php%3FPublishedID%3DINF07080101+analisis+rantai+nilai+eksternal&hl=id&gl=id&pid=bl&srcid=ADGEESjE1bgsc77AhaqX_kR1VBJaGPbvo0kbfzvrB6GsbMGHd0L34Jk2lY6Ft2EX3JuZA9VBC0WKTp7JQYLID4t6ZdTrbnS71Q9I_Dp2dZEtuIkXarhyJHcz1WTxBNupRMG-1xALQGKs&sig=AHIEtbTAgp5J1am5JQGOEd5O_Tfh2XbVAw )

  1. 5. Bagaimana penggunaan rantai nilai tsb.

Model sebagai hasil penggambaran analisis value chain, selanjutny akan dimanfaatkan untuk melakukan analisis bisnis yang akan datang :

-aliran informasi dalam industri dan bagaimana informasi kritikal sangat fungsional dalam industri dan mempengaruhi keberhasilan perusahaan dengan menentukan dimana, kapan informasi tersedia, siapa yang memiliki informasi tersebut dan bagaimana informasi tersebut

dapat digunakan untuk meningkatkan keunggulan perusahaan

– informasi-informasi yang dapat atau mempengaruhi perpindahan antara customer, supplier dalam rantai nilai untuk meningkatkan kinerja bisnis, saling mempengaruhi dalam meningkatkan melalui shraing benefit

– seberapa efektif aliran informasi dari primary proses dan bagaimana digunakan,tergantung :

o pada setiap aktifitas yang perlu dioptimalkan kinerjanya

o menghubungkan aktifitas2 secara bersama dan menghilangkan biaya yang tidak perlu

o membuat aktifitas pendukung ikut berperan meningkatkan value, bukan menghalanginya


Posted in Perancangan Strategi System Informasi | Leave a comment

Algoritma & MOOP [X]

  1. Diberikan penggalan program sebagai berikut:

#include <constrea.h>

class Induk{

public:

virtual int P(int x){return(x*x);}

int Q(int x, int y){return(y*P(x));}

};

class Anak : public Induk{

public:

int P(int x){return(x*x*x);}

int Q(int x){return(10*P(x));}

};

Ditanyakan:

a.)    apa output dari main program berikut:

void main(){

Induk A;

cout << “nilai Q(2,5) = “ << A.Q(2,5) << endl;

}

Jawab:

b.)    apa output dari main program berikut:

void main(){

Induk *B; B=new Anak;

cout << “nilai Q(2,5) = “ << B->Q(2,5) << endl;

}

Jawab:

c.)    apa output dari main program berikut:

void main(){

Anak C;

cout << “nilai Q(5) = “ << C.Q(5) << endl;

}

Jawab:

  1. Buatlah bagian program dengan ketentuan berikut.

3 (Tiga) class yang memiliki informasi sebagai berikut:

–      Class Shape, sifatnya abstract memiliki 1 public function: double luas();

–      Class Circle, derived dari Shape secara public, memiliki 1 member private: float radius;  1 function public: double luas() yang berisi rumus luas lingkaran; dan 1 contructor dengan 1 parameter yang langsung memberi isi pada radius. (Rumus luas lingkaran: luas = pi*r*r)

–      Class Triangle, derived dari Shape secara public, memiliki 2 member private: float alas dan tinggi;  1 function public: double luas() yang berisi rumus luas segitiga yaitu 0.5*alas*tinggi, dan 1 constructor dengan 2 parameter yang memberi nilai awal alas dan tinggi.

–      Apabila ditambah potongan program berikut:

void main(){

Circle MyCircle(7);

Cout<<”Luas MyCircle = ”<<MyCircle.luas();

Triangle MyTriangle(10, 5);

Cout<<”\nLuas MyTriangle = ”<<MyTriangle.luas();

Shape *ptr; ptr = &MyCircle;

Cout<<”\nLuas Pointer Shape = ”<< ptr->luas();

}

Akan menghasilkan tampilan:

Luas MyCircle = 154

Luas MyTriangle = 25

Luas Pointer Shape = 154

Jawab:

Code:

#include <iostream.h>

class shape

{

public:

virtual double luas()=0;

};

class circle : public shape

{

private:

float radius;

public:

circle(float r){radius=r;}

double luas() {return ((22 * radius *radius)/7);}

};

class triangle : public shape

{

private:

float alas,tinggi;

public:

triangle(float a,float t) {alas=a; tinggi=t;}

double luas() {return (0.5 * alas * tinggi); }

};

int main()

{

circle MyCircle(7);

cout<<“Luas MyCircle = “<<MyCircle.luas();

triangle MyTriangle(10, 5);

cout<<“\nLuas MyTriangle = “<<MyTriangle.luas();

shape *ptr; ptr = &MyCircle;

cout<<“\nLuas Pointer Shape = “<< ptr->luas()<<endl;

system(“pause”);

}

Hasil:

  1. Dengan menggunakan kelas inheritance dan polymorphism, buatlah class declaration dan function definition dari kelas hierarky (hierarchy class) di bawah: (petunjuk: gunakan virtual method untuk polymorphism).

Jawab:

Code:

#include <iostream.h>

#include <math.h>

class figure

{

public:

virtual void inputData()=0;

virtual double luas()=0;

virtual double keliling()=0;

};

class lingkaran : public figure

{

private:

double radius;

public:

void inputData(){cout << “\nMasukkan radius lingkaran : “; cin >> radius;}

double luas() {return (3.14 * radius * radius);}

double keliling() {return (2 * 3.14 * radius);}

};

class bujursangkar : public figure

{

private:

double panjangsisi;

public:

void inputData(){cout << “\nMasukkan Panjang sisi bujursangkar : “; cin >> panjangsisi;}

double luas() {return (panjangsisi * panjangsisi);}

double keliling() {return (2 *(panjangsisi + panjangsisi));}

};

class segitiga : public figure

{

private:

double panjangsisi;

public:

void inputData(){cout << “\nMasukkan Panjang sisi segitiga : “; cin >> panjangsisi;}

double luas() {return ((panjangsisi * panjangsisi * sqrt(3))/4);}

double keliling() {return (3 * panjangsisi);}

};

int main()

{

figure *f[3]={new lingkaran,new bujursangkar,new segitiga};

for (int i=0;i<3;i++)

{

f[i]->inputData();

cout<<“Luas     : “<<f[i]->luas()<<endl;

cout<<“Keliling : “<<f[i]->keliling()<<endl<<endl;

}

system(“pause”);

}

Posted in Algoritma & MOOP | Leave a comment

Algoritma & MOOP [IX]


  1. 1. Buatlah program dengan class inheritance untuk merepresentasikan class tabung yang mempunyai data jari2 alas tabung yang berbentuk lingkaran dan tinggi.  Class tabung merupakan class turunan dari class lingkaran yang mempunyai data jari2. Function yang ada pada class lingkaran adalah inputjari2, hitung luas dan hitung keliling. Sedangkan function yang ada pada class tabung adalah inputData, hitung volume dan hitung permukaan tabung.

Code:

#include <iostream>

using namespace std;

class lingkaran

{

protected:

float r,l,k;

public:

lingkaran() { r=l=k=0; }

void inputjari() { cout<<“Masukkan jari jari : “; cin>>r; }

float luas() { l=(22 * r * r)/7; return l;}

float keliling() { k=(22 * 2 * r)/7; return k; }

void tampill() { cout<<“Luas lingkaran : “<<luas()<<endl; cout<<“Keliling lingkaran : “<<keliling()<<endl; }

};

class tabung : public lingkaran

{

protected:

float t,v,p;

public:

tabung() { t=v=p=0; }

void inputdata() { cout<<“Masukkan tinggi : “; cin>>t; }

float volume() { v=lingkaran::luas() * t; return v; }

float permukaan() { p=(2 * lingkaran::luas()) + (lingkaran::keliling() * t); return p; }

void tampilt() { cout<<“Volume tabung : “<<volume()<<endl; cout<<“Permukaan tabung : “<<permukaan()<<endl; }

};

int main()

{

tabung tb;

tb.inputjari();

tb.inputdata();

tb.tampill();

tb.tampilt();

system(“pause”);

}

  1. 2. Buatlah sebuah program dengan menggunakan class dan konsep inheritance (pewarisan sifat).Dengan langkah-langkah sebagai berikut:

a)      Deklarasi dan definisikan sebuah class induk dengan data member dan method yang diperlukan.

b)      Deklarasi dan definisikan sebuah class anak yang diturunkan secara public dari class induk dan tambahkan method yang merupakan kelebihan class anak yang tidak dimiliki class induk dimana class induk hanya bisa bergerak ke kiri, kanan, atas, dan bawah sedangkan class anak selain bergerak juga bisa ganti warna.

c)      Bentuk obyek dari class anak dan lakukan method bergeraknya, gerakkan obyek dengan menggunakan anak panah.

d)     Tunggu penekanan tombol ENTER, jika sudah ditekan maka bentuk obyek class anak dan lakukan method bergeraknya, gerakkan obyek dengan menggunakan anak panah, ganti warna obyek dengan menekan tombol spasi.

Code:

#include <cstdlib>

#include <iostream>

#include <conio2.h>

using namespace std;

class induk

{

protected:

int x,y,z;

public:

induk() { x=y=10;z=1; }

void gerak(char *arah);

void setobj(int ax, int ay) {x=ax; y=ay;}

int getx() {return x;}

int gety() {return y;}

};

void induk::gerak(char *arah)

{

gotoxy(x,y); cout << ” “;

if (strcmp(arah, “kiri”)==0 && x >= 2) x = x – z;

else if (strcmp(arah, “kanan”)== 0 && x <= 50) x = x + z;

else if (strcmp(arah, “bawah”)==0 && y <= 20) y = y + z;

else if (strcmp(arah, “atas”)==0 && y >= 2) y = y – z;

}

class anak : public induk

{

protected:

int warna;

public:

anak() { warna=1; }

void ubahwarna();

void tampil();

};

void anak::ubahwarna()

{

warna ++;

if (warna>15) {warna = 1;}

}

void anak::tampil()

{ textcolor(warna); gotoxy(x,y); cout << “*”;  }

int main(int argc, char *argv[])

{

int ax,ay;

char tombol=0;

anak *ank;

ank = new anak();

(*ank).tampil();

do

{  if (tombol == 75) (*ank).gerak (“kiri”);

else if (tombol == 77) (*ank).gerak (“kanan”);

else if (tombol == 80) (*ank).gerak (“bawah”);

else if (tombol == 72) (*ank).gerak (“atas”);

else if (tombol == 13)

{    ax = (*ank).getx();

ay = (*ank).getx();

ank = new anak();

(*ank).setobj(ax,ay);

}

else if (tombol == 32) { (*ank).ubahwarna (); }

(*ank).tampil();

tombol = getch();

} while (tombol != 27);

system(“PAUSE”);

return EXIT_SUCCESS;

}

  1. 3. Buatlah program dengan class inheritance untuk menginputkan dan menampilkan data manager pada suatu perusahaan yang mempunyai data nip, nama, jenjang pendidikan, lulusan, alamat, departement, jumlah bawahan, dan gaji. Program dibuat dengan terlebih dahulu mendeklarasikan class manusia yang mempunyai data nama dan alamat, kemudian class karyawan yang mempunyai data nip, departement dan gaji, selanjutnya class mahasiswa yang mempunyai data nama sekolah, dan jenjang pendidikan. Masing-masing class tersebut mempunyai fungsi inputData dan displayData. Class Hirarkinya adalah sebagai berikut:

Hal –hal yang perlu dibuat adalah:

a.)    deklarasi masing-masing class, dengan ketentuan penurunan class karyawan dan class mahasiswa dari class manusia secara public, dan penurunan class manager dari class karyawan dan mahasiswa secara private.

Code:

Hasil:

#include <iostream>

#include <string>

#include <cstring>

using namespace std;

class manusia

{

protected:

string nama;

string alamat;

public:

manusia() { nama=””; alamat=””; }

void inputmanusia()

{

cout<<“Masukkan nama               : “; cin>>nama;

cout<<“Masukkan alamat             : “; cin>>alamat;

}

void tampilmanusia()

{

cout<<“\n\nNama           : “<<nama<<endl;

cout<<“Alamat         : “<<alamat<<endl;

}

};

class karyawan : public manusia

{

protected:

string nip;

string dept;

float gaji;

public:

karyawan() { nip=””; dept=””; gaji=0; }

void inputkaryawan()

{

manusia::inputmanusia();

cout<<“Masukkan NIP                : “; cin>>nip;

cout<<“Masukkan departemen         : “; cin>>dept;

cout<<“Masukkan gaji               : “; cin>>gaji;

}

void tampilkaryawan()

{

manusia::tampilmanusia();

cout<<“NIP            : “<<nip<<endl;

cout<<“Departemen     : “<<dept<<endl;

cout<<“Gaji           : “<<gaji<<endl;

}

};

class mahasiswa : public manusia

{

protected:

string sekolah;

string pendidikan;

public:

mahasiswa() { sekolah=””; pendidikan=””; }

void inputmahasiswa()

{

cout<<“Masukkan nama sekolah       : “; cin>>sekolah;

cout<<“Masukkan jenjang pendidikan : “; cin>>pendidikan;

}

void tampilmahasiswa()

{

cout<<“Sekolah        : “<<sekolah<<endl;

cout<<“Pendidikan     : “<<pendidikan<<endl;

}

};

class manager : private karyawan, private mahasiswa

{

protected:

int jmlbawahan;

public:

manager() { jmlbawahan=0; }

void inputmanager()

{

karyawan::inputkaryawan();

mahasiswa::inputmahasiswa();

cout<<“Masukkan jml bawahan        : “; cin>>jmlbawahan;

}

void tampilmanager()

{

karyawan::tampilkaryawan();

mahasiswa::tampilmahasiswa();

cout<<“Jumlah bawahan : “<<jmlbawahan<<endl;

}

};

int main()

{

manager m;

m.inputmanager();

m.tampilmanager();

system(“pause”);

}

Posted in Algoritma & MOOP | Leave a comment

Algoritma & MOOP [VIII]


  1. 1. Tuliskan program dengan class yang mempunyai variable static yang secara otomatis dapat mengetahui jumlah object yang tercipta pada suatu saat dan fungsi anggota static yang dapat mengembalikan nilai variable static..

Code:

#include <iostream.h>

class classstatic {

private:

static int y;

public:

classstatic();

int gety();

};

classstatic::classstatic()

{ y++; }

int classstatic::gety()

{ return y; }

int classstatic::y = 0;

int main()

{

classstatic st1;

cout<<“jml object yang terbentuk= “<<st1.gety()<<endl;

classstatic st2;

cout<<“jml object yang terbentuk= “<<st2.gety()<<endl;

classstatic st3;

cout<<“jml object yang terbentuk= “<<st3.gety()<<endl;

classstatic st4;

cout<<“jml object yang terbentuk= “<<st4.gety()<<endl;

system(“pause”);

}

  1. 2.Tuliskan program dengan class untuk dapat menginputkan data mahasiswa dan menampilkannya seperti di bawah.
Sks NIM IPK
42 0800100001 3.23
58 0800200002 2.25
32 0800600006 3.17
62 0800100001 2.90
40 0800300003 3.34
48 0800400004 2.54
36 0800200002 2.47

Jawab:

Code:

#include <iomanip.h>

#include <string>

#include <cstring>

#include <iomanip.h>

class mahasiswa

{

private:

char nim[11];

int sks,n;

float ipk;

public:

mahasiswa();

void setdata(char *nim,int sks,float ipk);

void tampildata();

};

mahasiswa::mahasiswa()

{

strcpy(nim,””);

sks=0;

ipk=0;

}

void mahasiswa::setdata(char *ni,int sk,float ip)

{

strcpy(nim,ni);

sks=sk;

ipk=ip;

}

void mahasiswa::tampildata()

{

cout<<setw(4)<<sks<<setw(15)<<nim<<setw(5)<<ipk<<endl;

}

int main()

{

mahasiswa mhs[7];

char N[11];

int S;

float I;

cout<<“Input data mahasiswa :”;

for(int i=0;i<7;i++)

{

cout<<“\nNIM  : “;cin>>N;

cout<<“SKS  : “;cin>>S;

cout<<“IPK  : “;cin>>I;

mhs[i].setdata(N,S,I);

}

cout<<“\nTampilkan data mahasiswa :”<<endl;

cout<<“\n”<<setw(4)<<“SKS”<<setw(10)<<“NIM”<<setw(5)<<“IPK”<<endl;

for(int i=0;i<7;i++)

{

mhs[i].tampildata();

}

system(“pause”);

}

  1. 3. Tuliskan program dengan class untuk merepresentasikan sebuah kamus sederhana, kamus tersebut mempunyai data kata, keterangan kata dan jumlah data maksimum yang dapat ditampung dengan array object.

Code:

#include <iostream.h>

#include <string>

#include <cstring>

#include <iomanip.h>

class kamus

{

private:

char kata[20];

char ket[50];

public:

kamus();

void setdata(char *kata,char *ket);

void tampil();

};

kamus::kamus()

{

strcpy(kata,””);

strcpy(ket,””);

}

void kamus::setdata(char *ka,char *ke)

{

strcpy(kata,ka);

strcpy(ket,ke);

}

void kamus::tampil()

{

cout<<setw(22)<<kata<<setw(52)<<ket<<endl;

}

int main()

{

kamus kms[100];

int jml;

cout<<“Jumlah data yan akan ditampung : “;cin>>jml;

char KATA[20];

char KET[50];

for (int i=0;i<jml;i++)

{

cout<<“Data ke-“<<i+1<<endl;

cout<<“Kata       : “;cin>>KATA;

cout<<“Keterangan : “;cin>>KET;

kms[i].setdata(KATA,KET);

}

cout<<“\nData yang sudah ditampung”<<endl;

cout<<setw(15)<<“KATA”<<setw(40)<<“KETERANGAN”<<endl;

for(int i=0;i<jml;i++)

{ kms[i].tampil(); }

cout<<“\n”<<jml<<” data dari maximum(100) yang dapat ditampung”<<endl;

system(“pause”);

}

  1. 4. Buatlah program C++ dengan menggunakan class untuk menggambarkan suatu object Calculator. Gunakan nama  kelas Calculator yang mempunyai 5 method yaitu tambah(), kurang() , kali() , bagi(), input(), dimana Method input() berfungsi menerima input dari user. Program harus mampu menerima 2 operand dan 1 buah operator dari user dan mampu menampilkan hasilnya. Silahkan  gunakan variabel – variabel yang anda butuhkan. Selain itu terdapat fungsi display() yang merupakan friend function dari class calculator dan digunakan untuk menampilkan hasil kalkulasi.

Code:

#include <iostream.h>

#include <string>

#include <cstring>

#include <math.h>

class kalkulator

{

private:

double op,op1,op2;

char opr[2];

public:

kalkulator();

kalkulator operator +(kalkulator c);

kalkulator operator -(kalkulator c);

kalkulator operator *(kalkulator c);

kalkulator operator /(kalkulator c);

friend istream& operator >> (istream& in, kalkulator& c);

friend ostream& operator << (ostream& out, kalkulator c);

};

kalkulator::kalkulator()

{ op=0; op1=0; op2=0, strcpy(opr,””);}

kalkulator kalkulator::operator +(kalkulator c)

{

this->op = op + c.op;

return (*this);

}

kalkulator kalkulator::operator -(kalkulator c)

{

this->op = op – c.op;

return (*this);

}

kalkulator kalkulator::operator *(kalkulator c)

{

this->op = op * c.op;

return (*this);

}

kalkulator kalkulator::operator /(kalkulator c)

{

this->op = op / c.op;

return (*this);

}

istream& operator >> (istream& in, kalkulator& c)

{

cout << “\ninputkan operand1: “;in >> c.op1;

cout << “\ninputkan operator: “;in >> c.opr;

cout << “\ninputkan operand2: “;in >> c.op2;

return in;

}

ostream& operator << (ostream& out, kalkulator c)

{

out<<“\nHasil dari “<<c.op1<<c.opr<<c.op2<<” = “;

if (strcmp(c.opr,”+”)==0)

{ c.op = c.op1 + c.op2; out<<c.op; }

else if (strcmp(c.opr,”-“)==0)

{ c.op = c.op1 – c.op2; out<<c.op; }

else if (strcmp(c.opr,”*”)==0)

{ c.op = c.op1 * c.op2; out<<c.op; }

else if (strcmp(c.opr,”/”)==0)

{ c.op = c.op1 / c.op2; out<<c.op; }

return out;

}

int main()

{

kalkulator A;

cin>>A;

cout<<A<<endl;

system(“pause”);

}

  1. 5. Buatlah program lengkap dengan konsep nesting object untuk menghitung dan menampilkan nilai akhir matakuliah Algoritma dan Pemrograman dan grade nilainya. Nilai akhir dihitung dengan rumus:

Nilai teori = 50%(UAS) + 30%(UTS) + 20%(Tugas)

Nilai Praktikum = 40%(UAP) + 30%(UTP) + 15%(TM) + 15%(absen)

Nilai akhir = 65%(Nilai teori) + 35%(Nilai Praktikum)

Tabel Nilai:

Nilai Akhir

Grade

85 – 100

A

75 – 84

B

65 – 74

C

50 – 64

D

0 – 49

E

class diagramnya:

Code:

#include <iostream.h>

#include <string>

#include <cstring>

#include <math.h>

class nteori

{

public:

float teori;

nteori();

float nilait(float uas,float uts,float tgs);

};

class npraktek

{

public:

float praktek;

npraktek();

float nilaip(float uap,float utp,float tm,float abs);

};

class nakhir

{

public:

float akhir;

nteori ct;

npraktek cp;

nakhir();

float nilaia();

char grade();

};

nteori::nteori()

{ teori=0; }

float nteori::nilait(float uas,float uts,float tgs)

{ teori= ((50 * uas)+(30 * uts)+(20 * tgs))/100; return teori; }

npraktek::npraktek()

{ praktek=0; }

float npraktek::nilaip(float uap,float utp,float tm,float abs)

{ praktek= ((40 * uap)+(30 * utp)+(15 * tm)+(15 * abs))/100; return praktek; }

nakhir::nakhir()

{ akhir=0; }

float nakhir::nilaia()

{ akhir= ((65 * ct.teori)+(35 * cp.praktek))/100; return akhir; }

char nakhir::grade()

{

char g=’e’;

if(akhir>=0 && akhir<=49)

{ g=’E’; }

else if(akhir>=50 && akhir<=64)

{ g=’D’; }

else if(akhir>=65 && akhir<=74)

{ g=’C’; }

else if(akhir>=75 && akhir<=84)

{ g=’B’; }

else if(akhir>=85 && akhir<=100)

{ g=’A’; }

return g;

}

int main()

{

nakhir na;

cout<<“Nilai Teori   : “<<na.ct.nilait(85,80,75)<<endl;

cout<<“Nilai Praktek : “<<na.cp.nilaip(85,80,75,70)<<endl;

cout<<“Nilai Akhir   : “<<na.nilaia()<<endl;

cout<<“Grade         : “<<na.grade()<<endl;

system(“pause”);

}

  1. 6. Sebuah bilangan komplek k dapat ditulis dalam bentuk k = a + bi, dimana a dan b adalah bilangan real dan i adalah bilangan imajiner sehingga i*i = -1. Bilangan a biasanya disebut bagian real dan bilangan b merupakan bagian imajiner dari bilangan k. Buatlah kelas Komplek sehingga kelas tersebut dapat digunakan untuk bekerja dengan bilangan komplek

Code:

#include <iostream.h>

#include <math.h>

class Complex

{

private:

double r, i;

public:

Complex();

Complex(double x);

Complex(double a, double b);

//Complex(Complex &c);

void setReal(double x);

void setIm(double y);

double getReal();

double getIm();

Complex operator +(Complex c1);

Complex operator +(int A1);

Complex operator +(double A1);

Complex operator -(Complex c1);

Complex operator -(int A1);

Complex operator -(double A1);

Complex operator *(Complex c1);

Complex operator *(int A1);

Complex operator *(double A1);

Complex operator /(Complex c1);

Complex operator /(int A1);

Complex operator /(double A1);

friend istream& operator >> (istream& in, Complex& c1);

friend ostream& operator << (ostream& out, Complex c1);

};

Complex::Complex()

{r = 0; i = 0;}

Complex::Complex(double x)

{ r = x; i=0; }

Complex::Complex(double a, double b)

{this->r = a; this->i = b;}

//Complex::Complex(Complex &c)

//{r = c.r; i = c.i; }

void Complex::setReal(double x)

{ r=x;}

void Complex::setIm(double y)

{ i=y;}

double Complex::getReal()

{ return r; }

double Complex::getIm()

{ return i;}

Complex Complex::operator +(Complex c1)

{

this->r += c1.r;

this->i += c1.i;

return (*this);

}

Complex Complex::operator +(int c1)

{ r = r+c1; i = c1+i; return(*this); }

Complex Complex::operator +(double c1)

{ r = c1+r; i = c1+i; return(*this); }

Complex Complex::operator -(Complex c1)

{

this->r -= c1.r;

this->i -= c1.i;

return (*this);

}

Complex Complex::operator -(int c1)

{ r = r-c1; i = i-c1; return(*this); }

Complex Complex::operator -(double c1)

{ r = r-c1; i = i-c1; return(*this); }

Complex Complex::operator *(Complex c1)

{

Complex temp;

temp.r = r*c1.r-i*c1.i;

temp.i = r*c1.i+c1.r*i;

return(temp);

}

Complex Complex::operator *(int c1)

{ r = r*c1; i = c1*i; return(*this); }

Complex Complex::operator *(double c1)

{ r = c1*r; i = c1*i; return(*this); }

Complex Complex::operator /(Complex c1)

{

Complex temp;

temp.r = r/c1.r-i/c1.i;

temp.i = r/c1.i+c1.r/i;

return(temp);

}

Complex Complex::operator /(int c1)

{ r = r/c1; i = c1/i; return(*this); }

Complex Complex::operator /(double c1)

{ r = c1/r; i = c1/i; return(*this); }

istream& operator >> (istream& in, Complex& c1)

{

cout << “\ninputkan bagian real: “;in >> c1.r;

cout << “inputkan bag imaginer: “;in >> c1.i;

return in;

}

ostream& operator << (ostream& out, Complex c1)

{

if (c1.i!=0.0 && c1.r!=0.0)

out << c1.r <<” + “<<c1.i<<“i”;

else if (c1.i != 0.0)

out << c1.i;

else

out << c1.r <<“i”;

return out;

}

int main()

{

Complex A(2,3), B, C;

cout << “Inputkan bil komplek: “; cin >> B;

cout << “\nBil komplek ke-1: “; cout << A << endl;

cout << “Bil komplek ke-2: “; cout << B << endl;

C = B+A;

cout << “\nPenjumlahan 1: “; cout << C << endl;

C = B+2;

cout << “Penjumlahan 2: “; cout << C << endl;

C = B+2.5;

cout << “Penjumlahan 3: “; cout << C << endl;

C = B-A;

cout << “\nPengurangan 1: “; cout << C << endl;

C = B-2;

cout << “Pengurangan 2: “; cout << C << endl;

C = B-2.5;

cout << “Pengurangan 3: “; cout << C << endl;

C = B*A;

cout << “\nPerkalian 1: “; cout << C << endl;

C = B*2;

cout << “Perkalian 2: “; cout << C << endl;

C = B*2.5;

cout << “Perkalian 3: “; cout << C << endl;

C = B/A;

cout << “\nPembagian 1: “; cout << C << endl;

C = B/2;

cout << “Pembagian 2: “; cout << C << endl;

C = B/2.5;

cout << “Pembagian 3: “; cout << C << endl;

system(“pause”);

}

Posted in Algoritma & MOOP | Leave a comment

Algoritma & MOOP [VII]

  1. 1. Buatlah program dengan class untuk menghitung luas dan keliling lingkaran dengan cara membuat class lingkaran yang mempunyai data member jari-jari dan mempunyai function member imput jari, hitung luas, hitung keliling, display jari, display keliling, dan display luas.

Jawab:

Code:

#include <iostream.h>

class lingkaran

{

private:

float r,l,k;

public:

float inputjari();

float luas(float r);

float keliling(float r);

void displayjari(float r);

void displayluas(float l);

void displaykeliling(float k);

};

float lingkaran::inputjari()

{

cout<<“Masukkan jari-jari : “;cin>>r;

return r;

}

float lingkaran::luas(float r)

{

l=(22 * r * r)/7;

return l;

}

float lingkaran::keliling(float r)

{

k=(22 * r * 2)/7;

return k;

}

void lingkaran::displayjari(float r)

{ cout<<“\nJari-jari = “<<r<<endl; }

void lingkaran::displayluas(float l)

{ cout<<“Luas      = “<<l<<endl; }

void lingkaran::displaykeliling(float k)

{ cout<<“Keliling  = “<<k<<endl; }

int main()

{

float jari,luas,kel;

lingkaran lin;

jari=lin.inputjari();

lin.displayjari(jari);

luas=lin.luas(jari);

kel=lin.keliling(jari);

lin.displayluas(luas);

lin.displaykeliling(kel);

system(“pause”);

}

  1. 2. Buatlah program dengan class untuk menghitung luas dan keliling segitiga, dengan mendeklarasikan class segitiga yang mempunyai data anggota tinggi dan alas bertipe integer dan mempunyai fungsi anggota input data, hitung keliling dan hitung luas serta tampil hasil.

Code:

#include <iostream.h>

#include <math.h>

class segitiga

{

private:

int a,t;

float l,k,m;

public:

int inputalas();

int inputtinggi();

float luas(int a,int t);

float keliling(int a,int t);

void displayhasil(float l,float k);

};

int segitiga::inputalas()

{

cout<<“Masukkan alas : “;cin>>a;

return a;

}

int segitiga::inputtinggi()

{

cout<<“Masukkan tinggi : “;cin>>t;

return t;

}

float segitiga::luas(int a,int t)

{

l=a * t * 0.5;

return l;

}

float segitiga::keliling(int a,int t)

{

m=sqrt((a * a)+(t * t));

k=a+t+m;

return k;

}

void segitiga::displayhasil(float l,float k)

{

cout<<“Luas      = “<<l<<endl;

cout<<“Keliling  = “<<k<<endl;

}

int main()

{

int alas,tinggi;

float luas,kel;

segitiga st;

alas=st.inputalas();

tinggi=st.inputtinggi();

luas=st.luas(alas,tinggi);

kel=st.keliling(alas,tinggi);

st.displayhasil(luas,kel);

system(“pause”);

}

  1. 3. Buatlah program dengan class untuk mencari akar persamaan kuadrat, dimana class mempunyai data member koefisien persamaan kuadrat yaitu A, B dan C. Kemudian class mempunyai fungsi member input data, hitung determinan dan display akar.


Code:

#include <iostream.h>

#include <math.h>

class persamaan

{

private:

float a,b,c,d;

public:

float inputA();

float inputB();

float inputC();

float determinan(float a,float b,float c);

void displayakar(float a,float b,float c,float d);

};

float persamaan::inputA()

{

cout<<“Masukkan A : “;cin>>a;

return a;

}

float persamaan::inputB()

{

cout<<“Masukkan B : “;cin>>b;

return b;

}

float persamaan::inputC()

{

cout<<“Masukkan C : “;cin>>c;

return c;

}

float persamaan::determinan(float a,float b,float c)

{

d=(b * b) – (4 * a * c);

return d;

}

void persamaan::displayakar(float a,float b,float c,float d)

{

cout<<“Determinan = “<<d<<endl;

if (d<0)

{  cout << “\nX1 dan X2 adalah Akar Imaginer” << endl; }

if (d==0)

{  cout << “\nX1 = X2 = ” << -b / (2*a) << endl; }

if (d>0)

{

cout << “X1 = ” << (-b + sqrt(d)) / 2*a << endl;

cout << “X2 = ” << (-b – sqrt(d)) / 2 << endl;

}

}

int main()

{

float A,B,C,D;

persamaan p;

A=p.inputA();

B=p.inputB();

C=p.inputC();

D=p.determinan(A,B,C);

p.displayakar(A,B,C,D);

system(“pause”);

}

  1. 4. Buatlah program dengan class dan funsi constructor untuk mencari akar persamaan kuadrat, dimana class mempunyai data member koefisien persamaan kuadrat yaitu A, B dan C. Kemudian class mempunyai fungsi member input data, hitung determinan dan display akar. Constructor digunakan untuk melakukan inisialisasi nilai A, B dan C dengan nilai A tidak boleh sama dengan nol.

Jawab:

Code:

#include <iostream.h>

#include <math.h>

class persamaan2

{

private:

float a,b,c,d;

public:

persamaan2(float A);

float nilaiA();

float inputA();

float inputB();

float inputC();

float determinan(float a,float b,float c);

void displayakar(float a,float b,float c,float d);

};

persamaan2::persamaan2(float A)

{

if (A==0)

{

a= 1;

cout<<“Nilai A tidak boleh 0 maka nilai A default = “<<a<<endl;

}

else

{ a= A; }

b=0; c=0;

}

float persamaan2::nilaiA()

{

return a;

}

float persamaan2::inputA()

{

cout<<“Masukkan A : “;cin>>a;

return a;

}

float persamaan2::inputB()

{

cout<<“Masukkan B : “;cin>>b;

return b;

}

float persamaan2::inputC()

{

cout<<“Masukkan C : “;cin>>c;

return c;

}

float persamaan2::determinan(float a,float b,float c)

{

cout<<“A=”<<a<<” B=”<<b<<” C=”<<c<<endl;

d=(b * b) – (4 * a * c);

return d;

}

void persamaan2::displayakar(float a,float b,float c,float d)

{

cout<<“Determinan = “<<d<<endl;

if (d<0)

{  cout << “\nX1 dan X2 adalah Akar Imaginer” << endl; }

if (d==0)

{  cout << “\nX1 = X2 = ” << -b / (2*a) << endl; }

if (d>0)

{

cout << “X1 = ” << (-b + sqrt(d)) / 2*a << endl;

cout << “X2 = ” << (-b – sqrt(d)) / 2 << endl;

}

}

int main()

{

float A,B,C,D;

persamaan2 p2(1);

A=p2.inputA();

persamaan2 p3(A);

A=p3.nilaiA();

B=p3.inputB();

C=p3.inputC();

D=p3.determinan(A,B,C);

p3.displayakar(A,B,C,D);

system(“pause”);

}

  1. 5. Tulis program dengan class dan constructor untuk membuat obyek yang merepresentasikan koordinat kutub (r, q). Declarasikan class tersebut dengan data member r atau radius, dan sudut (q), sedangkan function membernya adalah iput data, konversi kutub ke radius, display data.

Code:

#include <iostream.h>

#include <math.h>

class sincostan

{

private:

float d,r,x,y;

public:

sincostan(float D,float R);

float nilair();

float inputr();

float nilaid();

float inputd();

float nilaix(float d,float r);

float nilaiy(float d,float r);

void displaykoordinat(float d,float r,float x,float y);

};

sincostan::sincostan(float D,float R)

{

if (D==0)

{

d= 30;

cout<<“Nilai Derajat tidak boleh 0 maka default = “<<d<<endl;

}

else

{ d= D; }

if (R==0)

{

r= 10;

cout<<“Nilai Radius tidak boleh 0 maka default = “<<r

<<endl;

}

else

{ r= R; }

}

float sincostan::nilair()

{

return r;

}

float sincostan::inputr()

{

cout<<“Masukkan radius : “;cin>>r;

return r;

}

float sincostan::nilaid()

{

return d;

}

float sincostan::inputd()

{

cout<<“Masukkan derajat : “;cin>>d;

return d;

}

float sincostan::nilaix(float d,float r)

{

cout<<“X = cos “<<d<<” “<<r<<endl;

x= cos(d) * r;

return x;

}

float sincostan::nilaiy(float d,float r)

{

cout<<“X = sin “<<d<<” “<<r<<endl;

y= sin(d) * r;

return y;

}

void sincostan::displaykoordinat(float d,float r,float x,float y)

{

cout<<“Koordinat(X,Y) dari derajat:”<<d<<” dan radius:”<<r<<endl;

cout<<” adalah (“<<x<<“,”<<y<<“)”<<endl;

}

int main()

{

float D,R,X,Y;

sincostan s1(30,10);

D=s1.inputd();

R=s1.inputr();

sincostan s2(D,R);

D=s2.nilaid();

R=s2.nilair();

X=s2.nilaix(D,R);

Y=s2.nilaiy(D,R);

s2.displaykoordinat(D,R,X,Y);

system(“pause”);

}

Posted in Algoritma & MOOP | Leave a comment

Testing & Implementasi [V]

Dalam mendapatkan manfaat dari hasil pengujian aplikasi yang melalui outsourcing sebaiknya perusahaan memperhatikan beberapa hal, diantaranya adalah :

  1. 1. Memilih Rekanan

suatu proyek pengujian harus melibatkan pihak-pihak atau orang-orang dari luar organisasi. Sebelum menentukan rekanan yang akan dipilih sebaiknya ditanyakan terlebih dahulu mengapa ingin menggunakan sumberdaya pengujian dari luar dibandingkan dengan sumberdaya dari tim pengujian sendiri. Seperti memanfaatkan bantuan dari analis bisnis, tenaga penjualan, tenaga pemasaran, dan laiinya untuk memastikan kualitas produk. Agar perusahaan tidak salah dalam memilih rekanan.

  1. 2. Menilai Kemampuan (Assessing Capabilities)

Setelah cukup mempelajari mengenai rekanan pengujian yang berpotensi untuk memilih organisasi bagi proyek, berikutnya dibutuhkan penilaian terhadap rekanan secara khusus kemampuan pengujiannya sebagai bagian dari perencanaan menyeluruh pengujian yang akan dilakukan. Penilaian yang dilakukan untuk kondisi fisik dari rekanan harus termasuk peralatan, fasilitas dan lokasi. Jika pekerjaan pengujian dilakukan diluar lokasi perusahaan, penilaian harus melihat fasilitas pengujian rekanan. Lokasi rekanan yang mudah terjangkau memungkinkan anda

melakukan kunjungan tanpa pemberitahuan untuk mengetahui proses pengujian.

  1. 3. Memahami Biaya (Understanding the Cost)

Sebelum melakukan proses lebih lanjut dengan perencanaan yang rinci, vendor atau organisasi pengujian independen dimungkinkan membutuhkan anda untuk memulai pembayaran untuk proyek yang dikerjakan. Dari vendor atau organisasi pengujian independen, anda dapat meminta penawaran, yang mana dapat berupa penawaran biaya tetap (fixed-cost) atau penawaran berdasarkan waktu dan material. Jika menerima penawaran berdasarkan waktu dan material, anda butuh melakukan estimasi biaya mingguan atau bulanan untuk kebutuhan anggaran. Selain biaya yang dibebankan oleh rekanan pengujian, dimungkinkan terjadi pengeluaran lainnya yang berhubungan dengan distribusi pengujian itu sendiri.

  1. 4. Menyusun, Mengkoordinasi dan Mempartisi Program Pengujian (Collating,Coordinating, and Partitioning the Test Program)

Tugas berikutnya dalam pendistribusian pengujian adalah mengabungkan dua atau lebih proyek pengujian ke dalam sebuah gabungan program pengujian. Sasarannya adalah memproduksi sebuah kasus pengujian (test case) yang lengkap, diorganisasikan ke dalam koleksi dari rangkaian pengujian (test suites), dengan masing-masing rangkaian dijalankan oleh salah satu tim. Tahap pertama menyusun (collating), membuat sebuah daftar dari keseluruhan kasus pengujian yang akan dijalankan. Tahap kedua, mengkoordinasi, melakukan eliminasi kasus pengujian yang sama (redundant). Tahap ketiga adalah mempartisi pekerjaan, mengevaluasi lembar kerja pelacakan pengujian dan memposisikan kasus pengujian kepada penanggung jawab baru.

  1. 5. Mengorganisasikan Logistik (Organizing Logistics)

Keunggulan dari pengujian terdistribusi, ketika rangkaian pengujian terpartisi secara tepat, setiap rekanan menjalankan kekuatannya masing-masing. Situasi ini cenderung meminimalkan masalah logistik. Dalam beberapa kasus, pengujian yang terdistribusi menciptakan masalah logistic yang unik. Hambatan yang paling berat muncul ketika sebuah proyek didalamnya termasuk satu atau lebih bagian dari perangkat keras yang tidak lazim (custom), contoh rekayasa, atau perlengkapan yang terbatas.

  1. 6. Berurusan dengan Masalah Pemetaan (Dealing with Mapping Issues)

Jika setiap operasi pengujian berjalan dengan cara yang sama, pekerjaan yang direncanakan akan dapat diselesaikan ketika program digabungkan, pekerjaan dibagi-bagi sesuai, dan masalah logistic dapat ditangani. Sebenarnya, setiap tim pengujian menggunakan pendekatan yang berbeda-beda. Kita tidak dapat membuat setiap rekanan pengujian bekerja dengan cara anda, tetapi dibutuhkan untuk mengenali dan mengelola perbedaan. Masalah ini disebut dengan “masalah pemetaan (mapping issues)” karena anda berusaha untuk memetakan rekanan pengujian dengan kondisi anda. Masalah pemetaan pertama biasanya muncul selama proses koordinasi, ketika membandingkan dan menyusun kasus pengujian.

Posted in Testing & Implementasi | Leave a comment

Testing & Implementasi [IV]

  1. 1. What_IT_managers_should_know_about_ROI.pdf

Keuntungan yang dapat diukur dari pengujian adalah:

  1. Menemukan bugs yang dapat diperbaiki, bahkan dapat dicegah
  2. Menemukan bugs yang tidak diperbaiki tetapi diketahui
  3. Jalankan tes yang mengurangi (berpotensi mahal) risiko.
  4. Panduan proyek dengan informasi yang tepat waktu, akurat, dan kredibel.

Assessment of Quality

Selama pengembangan atau pemeliharaan sistem, karakteristik kualitas beresiko. Dengan kata lain, ada beberapa kemungkinan perilaku yang tidak diinginkan dalam sistem.

Cost of Quality

menganalisis biaya-biaya dengan membagi biaya kualitas ke dua komponen yaitu:

  1. Cost of conformance (biaya kesesuaian) adalah biaya pembangunan kualitas ke dalam sistem. Biaya yang termasuk dalam cost of conformance adalah cost of prefention (biaya pencegahan) dan cost of detection (biaya deteksi).
  2. Cost of non conformance (biaya tidak sesuai) adalah biaya memperbaiki bug dan pengujian ulang system. Yang termasuk dalam cost of non conformance adalah cost of internal failure dan cost of external failure.

The Value of Known Bugs

Ada tiga keuntungan untuk mengetahui tentang bug sebelum rilis.

Dalam beberapa kasus, kita dapat mencegah pengguna dari melihat bug.

Dapat memperingatkan pengguna pada catatan rilis sehingga pengguna dapat menghindari bug.

Dapat memberikan solusi dan informasi lainnya untuk disk bantuan atau staf pendukung teknis.

Ini tidak hanya akan menghemat biaya, tetapi juga menghasilkan pelanggan yang lebih puas.

The Value of Risk Mitigation

Pengujian adalah suatu bentuk asuransi proaktif untuk sistem. Tes yang gagal memberi kita kesempatan untuk menghindari biaya kegagalan eksternal yang tidak diantisipasi nantinya. Dalam istilah ekonomi, kita dapat menggantikan mitigasi sebelum-fakta-risiko yang disediakan oleh pengujian untuk penggantian setelah fakta-kerugian yang diberikan oleh asuransi.

The Value of Good Advice

Komunikasi efektif pada status pengujian sangat penting, terutama pada akhir proyek ketika anggaran risiko serius atau jadwal overrun atau kegagalan project langsung adalah yang tertinggi. Jadi, estimasi, sederhana masuk akal adalah bahwa 25% dari nilai pelacakan proyek yang baik timbul dari penilaian yang baik dari kualitas dari tim uji.

  1. 2. Quality_risk_in_system_integration.pdf

Semakin banyak proyek integrasi melibatkan lebih dari kustom yang dikembangkan atau komersial-off-the-shelf (COTS) komponen, daripada pembangunan atau peningkatan perangkat lunak. Akibatnya, kedua pendekatan langsung atau tidak langsung merupakan outsourcing dari beberapa atau semua pekerjaan pengembangan system.

Quality Risk Factors in Integration

Salah satu faktor yang meningkatkan risiko kualitas kopling, yang menciptakan interaksi                             kuat dengan konsekuensi-sistem atau system ketika komponen gagal.

Misalnya, tabel pelanggan padadatabase aplikasi Web menjadi terkunci dan tidak dapat diaksesdi bawah beban normal. kemudian Irreplaceability, ketikaada beberapa komponen yang serupa tersedia atau penggantian adalah mahal atau membutuhkan waktu yang lama. setelah itu  esensial, di mana beberapa fitur kunci atau fitur dari sistem akan tidak tersedia jika komponen tersebut tidak bekerja dengan benar. Dan faktor terakhir yang meningkatkan risiko adalah vendor masalah kualitas, terutama bila disertai dengan perubahan haluan lambat pada perbaikan bug saat Anda melaporkan masalah. Jika ada kemungkinan tinggi vendor mengirimkan komponen yang buruk, tingkat risiko terhadap kualitas seluruh sistem yang lebih tinggi.

Trust Your Vendors

Salah satu strategi hanya untuk mempercayai kualitas komponen vendor dan pengujian, dan beranggapan bahwa mereka akan memberikan kinerja yang cukup baik dalam bekerja kurang untuk Anda.

untuk mengintegrasikan, melacak, dan mengelola pengujian vendor komponen mereka sebagai bagian dari upaya, didistribusikan untuk Pengujian keseluruhan sistem. Ini melibatkan perencanaan di muka, bersama dengan memiliki kekuatan yang cukup dengan vendor untuk bersikeras bahwa mereka menganggap uji mereka tim dan upaya uji bawahan dan yang terkandung dalam Anda.

Manage Your Vendors

Strategi lain adalah untuk mengintegrasikan, melacak, dan mengelola pengujian vendor komponen mereka sebagai bagian dari upaya,mendistribusikan untuk Pengujian keseluruhan sistem. Ini melibatkan perencanaan awal, bersama dengan memiliki kekuatan yang cukup dengan vendor untuk bersikeras bahwa mereka menganggap uji mereka tim dan upaya uji bawahan dan yang terkandung dalam Anda.

Fix Your Vendor

Pilihan lainnya adalah untuk memperbaiki pengujian vendor komponen atau masalah kualitas, dimana situasi mengharapkan untuk merubah menguji vendor dan proses uji kualitas atau membangun yang baru dan proses kualitas untuk mereka dari awal. Kedua belah pihak harus berharap bahwa upaya substansial, termasuk modifikasi produk, akan menghasilkan.

  1. 3. Test_manager_role.ppt

Uji Peran Manajer

Pengujian Manager memastikan bahwa:

  1. Pengujian dilakukan

Mengawasi Software Testers melakukan pengujian dengan cara yang benar.

  1. Pengujian didokumentasikan

Mengawasi uji kasus dirancang dengan benar, berpartisipasi dalam tinjauan formal dan sesama, mengawasi semua jenis testware dikembangkan, dan melaksanakan uji standar.

  1. Teknik pengujian ditetapkan dan dikembangkan

Menjamin teknik pengujian yang benar ditetapkan, memberikan bimbingan pada untuk apa teknik pengujian dilaksanakan.

  1. Bertanggung jawab untuk memastikan bahwa tes dirancang dan dilaksanakan secara tepat waktu dan produktif

Yakinkan bahwa uji kasus dirancang sesuai dengan tujuan lain pada rencana uji, yakinkan bahwa pelaksanaan tes dilakukan berdasarkan jadwal proyek.

  1. Uji perencanaan dan estimasi

Bertugas menyediakan atas semua perencanaan pengujian (Test Plan), bertanggung jawab atas estimasi siklus pengujian.

  1. Merancang strategi pengujian

Bertanggung jawab atas strategi uji (Mendeteksi Risiko bisnis), bertanggung jawab merancang matriks traceability.

  1. Meninjau artefak analisis dan desain

Meninjau persyaratan, meninjau dokumen fungsional, meninjau desain dokumen.

  1. Memimpin meninjau kesiapan pengujian

Bertugas mengatur peninjauan kesiapan pengujian sebelum setiap tonggak pengujian.

  1. Mengelola upaya pengujian

Bertanggung jawab mengelola proses pengujian, bertugas untuk memberikan umpan balik terus-menerus kepada anggota tim, bertanggung jawab atas pengambilan keputusan dalam proyek, bertugas untuk memberikan solusi untuk masalah dengan menggunakan quality tools yang sesuai.

10.  Mengawasi kelayakan pengujian

Merancang penerimaan test plan bersama dengan klien, merancang penerimaan test case, mengawasi penerimaan pengujian dengan klien.

Posted in Testing & Implementasi | Leave a comment