Hacked By TeaM_CC :: sec_d@rK WAS HERE
Your Security breached ….
No security is perfect
Facebook.com/cyber.command0s
[+]Team_CC[+]
Your Security breached ….
No security is perfect
Facebook.com/cyber.command0s
[+]Team_CC[+]
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.
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.
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.
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.
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
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.
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 :.
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.
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————
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.
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
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.
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.
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
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.
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
#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:
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:
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”);
}
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”);
}
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;
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
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”);
}
Dalam mendapatkan manfaat dari hasil pengujian aplikasi yang melalui outsourcing sebaiknya perusahaan memperhatikan beberapa hal, diantaranya adalah :
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.
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.
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.
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.
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.
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.
Keuntungan yang dapat diukur dari pengujian adalah:
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:
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.
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.
Uji Peran Manajer
Pengujian Manager memastikan bahwa:
Mengawasi Software Testers melakukan pengujian dengan cara yang benar.
Mengawasi uji kasus dirancang dengan benar, berpartisipasi dalam tinjauan formal dan sesama, mengawasi semua jenis testware dikembangkan, dan melaksanakan uji standar.
Menjamin teknik pengujian yang benar ditetapkan, memberikan bimbingan pada untuk apa teknik pengujian dilaksanakan.
Yakinkan bahwa uji kasus dirancang sesuai dengan tujuan lain pada rencana uji, yakinkan bahwa pelaksanaan tes dilakukan berdasarkan jadwal proyek.
Bertugas menyediakan atas semua perencanaan pengujian (Test Plan), bertanggung jawab atas estimasi siklus pengujian.
Bertanggung jawab atas strategi uji (Mendeteksi Risiko bisnis), bertanggung jawab merancang matriks traceability.
Meninjau persyaratan, meninjau dokumen fungsional, meninjau desain dokumen.
Bertugas mengatur peninjauan kesiapan pengujian sebelum setiap tonggak 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.